首页 / JAVA / java中什么是重写?
java中什么是重写?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java中什么是重写?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1828字,纯文字阅读大概需要3分钟。
内容图文
![java中什么是重写?](/upload/InfoBanner/zyjiaocheng/1052/c76130eee7e0488ab3413df96788cebf.jpg)
比如,
定义Father类
1:姓名,吃饭方法,吃窝窝头。
2:定义Son类,继承Father
1:Son类中不定义任何成员,子类创建对象,仍然可以调用吃饭的方法。
2:父类的吃饭的方法,Son不愿吃。Son自己定义了吃饭的方法。
1:此时父类中有一个吃饭的方法,子类中有2个吃饭的方法,一模一样,只是方法体不一样。
2:一个类中两个函数一模一样,是不允许的。
1:编译运行,执行了子类的方法。
2:使用父类的方法,在子类方法中,使用super.父类方法名。
class Father {
String name;
void eat() {
System.out.println("吃窝窝");
}
}
class Son extends Father {
public void eat() { // 继承可以使得子类增强父类的方法
System.out.println("来俩小菜");
System.out.println("来两杯");
System.out.println("吃香喝辣");
System.out.println("来一根");
}
}
class Demo8 {
public static void main(String[] args) {
Son s = new Son();
//执行子类的方法
s.eat();
}
}
3,该现象就叫做重写(覆盖 override)
1,在继承 中,子类可以定义和父类相同的名称并且参数列表一致的函数,将这种函数称之为函数的重写
4,前提
1,必须存在有继承关系
5,特点
1,当子类重写了父类的函数,那么子类的对象如果调用该函数,一定调用的是重写过后的函数,可以通过super关键字进行父类的重写函数的调用
2,继承可以使得子类增强父类的方法
6,细节
1,函数名必须相同
2,参数列表必须相同
3,子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访问权限否则会编译报错
4,子类重写父类的函数的时候,返回值类型必须是父类函数的返回值类型或该返回值类型的子类,不能返回比父类更大的数据类型,如子类函数的返回值类型是object
1:定义 A B C类 B extends A
2:Father类中定义A getA();
3:Son 类中重写getA(); 方法,尝试将返回值修改为B,C ,Object
1:B编译通过
2:C 编译失败 ,没有继承关系
3:Object编译失败,比父类的返回值类型更大
class A {
}
class B extends A {
}
class C {
}
class Father {
String name;
void eat() {
System.out.println("吃窝窝");
}
// 定义一个函数,获取A类的对象,
A getA() {
return new A();
}
}
class Son extends Father {
public void eat() { // 继承可以使得子类增强父类的方法
System.out.println("来两杯");
System.out.println("来俩小菜");
super.eat();
System.out.println("来一根");
}
// B类是A类的子类
B getA() {
return new B();
}
}
class Demo8 {
public static void main(String[] args) {
Son s = new Son();
s.eat();
}
}
7,子类对象查找属性或方法时顺序
1,原则,就近原则
如过子类的对象调用方法,默认先使用this进行查找,如果当前对象没有找到属性或方法,把当前对象中维护的super关键字指向的对象,如果还没有找到变异报错,找到直接调用,
8,重载和重写的不同
1,重载(overload)
1,前提,所有的重载函数都必须在同一个类中
2,特点
函数名相同,参数列表不同,与其他的无关(访问控制符,返回值类型)
3,不同
个数不同、顺序不同、类型不同
2,重写(override)
1,前提,继承
2,特点
函数名必须相同,参数列表必须相同
子类的返回值类型要等于或者小于父类的返回值
原文:http://blog.51cto.com/13797478/2140691
内容总结
以上是互联网集市为您收集整理的java中什么是重写?全部内容,希望文章能够帮你解决java中什么是重写?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。