对于重载和重写,都有一个“重”字,那么可以这样简单的理解,重载就是重新把构造方法写了一次,重写就是重新把方法写了一次。
那么,具体一点的理解就是,如下:
重载:除了默认的一个构造方法之外,又定义了一系列同名的方法,只是通过传入不同的参数来看是调用哪个构造方法。返回值类型不同时不可以构成重载的。
例如:
public class Role {
//默认的构造方法
public Role() {
}
//重载的构造方法,当传入的是字符串是掉用这个构造方法
public Role(String s) {
}
public Role(int t) {
}
public Role(String s,int t) {
}
}
重写:在有继承的时候发生,是子类在继承父类的方法时,父类的方法不能满足子类的需求,子类需要将父类的方法重新写一次,方法相同,只是方法体不同而已。
例如:
/*
*父类:学生类
*/
public class Student {
//学生的名字
protected String name;
//设置名字的方法
public void setName() {
name = s;
}
//学生学习的方法
public void study(){
System.out.println(name+"在学习");
}
}
/*
*子类:大学生类,继承学生类
*/
public class DStudent extends Student {
//大学生类继承了学生类名字的属性还有设置名字以及学习的方法
//大学生要自己学习也要考四级
//重写写了父类的方法,方法不变,方法体改变
public void study() {
System.out.println(name+"是大学生,学习靠自己,还得考四级!");
}
}
明白了重载和重写,那什么是自动转型和强制转型呢?
自动转型就是,在继承中,子类的类型可以自动转换成父类中的对象类型。
格式是这样的:
父类类型 对象名 = new 子类类型();
还用上边的例子来说明:
Student s1 = new DStudent();
这就是自动转型,父类类型的变量名来引用子类类型。
强制转型就是,把一种类型强制转换成另一种类型。
格式:
旧类型 旧对象名 = new 旧类型();
新的类型 新对象名 = (新的类型)旧对象名;
分享到:
相关推荐
主要总结了java中的重载和重写的区别,供大家理解参考,有问题可以补充
重载:用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。多态:c#的多态性主要体现在类的继承上:子类继承父类的时候,可能出现同名但方法定义不同的情况, 所以在子类中会将原方法...
重载与覆写/重写的区别 区别 重载 覆写 1 单词 OverLoading Override 2 概念 方法名称相同,参数的类型或个数不同 方法名称相同,参数的类型或个数相 同,返回值类型相同 3 范围 发生在一个类之中...
对java中重载和重写的概念做了详细的介绍和比较
对Java中方法的重载和重写的具体描述,有利于区分方法的重载和重写
重载与重写的区别,详细描述了java中重载与重写的区别。
Java中重载和重写总结,基础知识,概念分清楚,补充基础知识
重载,重写,覆盖,多态的深刻剖析,具体分析了重载,重写,覆盖,多态之间的区别
详细描述继承,多态的概念和应用,阐述重载和重写的区别
java 重载,重写以及继承,多态的区别
我根据我的理解来谈谈Java中重写方法与重载方法的区别。 重写 Java 中重写又叫覆盖,主要是指继承(extends)父类或者实现(implements)接口时将父类或者接口中已经存在的方法进行重新定义。重写的方法在父类...
C++中重载与重写函数区别及虚函数!
c++重载,重写,重定义测试代码
重载的条件: 1.必须在同一个类中2.方法名必须相同3.参数列表不能相同。 重写的条件: 1. 在不同的类中 2. 发生方法重写的两个方法返回值,方法名,参数列表必须完全一致 3. 子类抛出的异常不能超过父类相应的...
重载和重写--java
[Java]重载,重写以及继承,多态的区
1、重载 方法的重载是同一个类中多态性的一种表现。 方法重载须遵循如下两条规则 (1)方法名相同。 (2)参数列表不同。 注意:方法的返回值类型不能用来区分重载的方法。这是因为当调用一个方法时...
本文主要介绍Java 的重载和重写,学习java的同学都知道Java的多态有多重要,这里给大家举例说明函数的重载和重写,希望能帮助有需要的小伙伴
这篇文章主要介绍了C++中重载、重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下
NULL 博文链接:https://ezbcw.iteye.com/blog/2142995