快捷键Ctrl+H可以查看当前类的继承关系
super关键字注意点:
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中!
3、super和this不能同时调用构造方法
super和this的区别:
代表的对象不同:
this:本身调用者这个对象
super:只能在分类对象的应用
前提:
this:没用继承也可以使用
super:只能在继承条件才可以使用
构造方法:
this():本类的构造
super():父类的构造
Student s1 = new Student();
Person s2 = new Student();//这叫父类的引用指向子类
//可以指向的引用类型就不确定了:父类的引用指向子类
Student s1 = new Student();//Student 能调用的方法都是自己的或者继承父类的
Person s2 = new Person();//Person 父类型,可以指向子类,但是不能调用之类独有的方法
Object s3 = new Student();
//对象能执行哪些方法,主要看对象左边的类型,看看左边对象的类型里面有没有,和右边关系不大,只要子类从写了父类的方法,当父类在调用已被之类重写的方法时,执行的是子类的方法
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系,不然会有类型转换异常!ClassCastException
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1 = new Son()
不能重写的方法有:
1.static 方法,属于类,他不属于实例
2.final 常量;
3.private方法;
注:当一个类继承它的父类时,在new它的实例的时候,是他父类的构造函数先执行,子类的构造函数里面第一条语句默认存在super()
方法重写:需要有继承关系,子类重写父类的方法
1、重写都是方法的重写,和属性无关
2、重载是本类的,而且方法名一样,参数不一样
3、重写是在父子类关系的才能重写,而且是静态static的方法不能重写,静态的方法和非静态的方法区别很大。
4、重写方法名必须相同、参数列表必须相同、修饰符:范围可以扩大但不能缩小:pulic>protected>default>private、抛出的异常:范围可以缩小,但不能扩大
5、重写,子类的方法和父类的必须一致:方法体不同
为什么需要重写:
1、父类的功能,子类不一定需要,或者不一定满足
快捷键:Alt+Insert:override;
笔记知识点来源:【狂神说java】java0基础学习