继承、重载、重写
重载的条件:
1.必须在同一个类中
2.方法名必须相同
3.参数列表不能相同。重写的条件: 1. 在
java重写和重载的区别不同的类中
2. 发生方法重写的两个方法返回值,方法名,参数列表必须完全一致
3. 子类抛出
的异常不能超过父类相应的方法抛出的异常
4. 子类方法的访问级别不能低于父类相应方法的访问级别(public,package,protected, private)
5.方法体不同
super()调用父类构造,super.只能调用父类的实例方法 this()调用该类的其他构造
方法,this.调用类的属性,方法如果父类有有参构造,子类必须定义构造方法
2021-04-12 09:28 java类的继承,重载,重写
继承关键字extends 如public class Person extends Animal
============================================================ super只能用在子类的定义中,而不能在main()函数中调用;
super()作构造器时,若父类以及祖宗类是有参构造函数,则子类以及孙类必须super (参数),而且不能间断,且在子孙类的构造函数的第一行必须是super(参数); 以此
继承关系为例:
Animal ----> Person---> Student
实际上在类Student的构造函数中,隐含存在了类Person的构造函数和类Animal的
构造函数,而所有的构造函数也够隐含存在了类Object的构造函数
super在子类中可以调用父类的protected 和public的方法和属性,当然如果父子
类在同一包(目录)中,super在子类的定义中还能调用父类default的属性
============================================================
方法覆盖的条件:子类中的方法与父类中的方法{方法名,参数,返回值类型均相同,而子类的访问权限要大于父类的访问权限}
方法重载的条件:类中的方法(无论是新建的还是继承来的){方法名相同,但参数不同,就是重载}
其他条件的重名问题一概报错
详见Banana.java Plant.java Tree.java中的showInfo()方法
============================================================ 属性也有覆盖,而且是绝对的覆盖,只要属性名字,即使数据类型不同,或者权限不同,也会覆盖,很霸道的覆盖;虽然覆盖了,但它还有被覆盖的属性,只是不能直接访问而已,通过super访问或通过相关接口进行访问详见Banana.java和plant.java
============================================================ public void speak();--------speak
public void speak(int i);---spaek_int
public void speak(int i,int j);---spaek_int_int
实际方法标识符只与方法名和参数类型有关
============================================================感谢您的阅读,祝您生活愉快。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论