Java只有单继承!!!
子类的无参构造函数,第一句隐藏了父类的无参构造函数:super()
super注意点:
-
子类中用super调用父类的构造方法,必须在构造方法的第一行
-
super必须只能出现在子类的方法或者构造方法中
-
super和this不能同时调用构造方法,因为this和super都需要在第一行
vs this: 代表的对象不同: this:本身这个类
super:父类
前提:
this:没有继承也可以使用
super:只能在继承中才可以使用
构造方法:
this() 本类的构造方法
super() 父类的构造方法
重写
重写:需要有继承关系,子类重写父类的方法!
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大但不能缩小: public>protected>default>private
-
抛出的异常:范围可以缩小但不能扩大 ClassNotFoundException->Exception
-
重写,子类的方法和父类必须要一致,方法体不同!
为什么要重写? 父类的功能子类不一定需要,或者不一定满足。 Alt+Insert override
静态方法相同 看左边的类 A extends B A a = new A() B b = new A() a.test()是A中的方法 b.test()是B中的方法 (test是静态的)
非静态方法相同 看右边的对象即子类 A extends B A a = new A() B b = new A() a.test()是A中的方法 b.test()是A中的方法(非静态)
注意事项:
-
多态是方法的多态,属性没有多态
-
父类和子类,有联系 ,否则出现类型转换异常!ClassCastException
-
!!!存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f = new Son()
(如果是子类特有的方法,父类引用子类对象是访问不了子类的特有方法的-> 能不能调用方法看左边的类,和右边的对象无关,当重写时都调用子类的重写方法)
不能重写的情况:
-
static 方法,属于类,它不属于实例
-
final 常量
-
浙公网安备 33010602011771号