继承
1.super调用父类的构造方法必须放在第一个
如果不在子类构造器的第一个就会报错
2.super只能出现在子类构造或者方法中
3.super和this不能同时调用构造方法
this()本类的构造
super()父类的构造
在构造子类时会默认构造父类
Applicant 调用mian方法 Sun 子类继承 Person Person父类
mian方法中调用方法say 并且传入实参严昌敬
在子类的say方法中sout(name)name就是严昌敬
但是子类和父类各自够构造器所以 this.name为严 super.name为yan
疑问
为什么sout(super.name)输出的为严
但是若令n=super.name,再输出n 输出的结果为 yan???
重写
需要有继承关系,子类继承父类
- 方法名必须相同
- 参数列表必须相同
- 不能是静态方法
- 修饰符:可以扩大但是不能缩小 private-》proteced-》public
- 抛出异常:范围可以被缩小但是不能放大ClassNotFoundException->Exception
重写:方法名必须相同,方法体不同
原因:子类需要的功能父类没有,或者父类多的功能子类不用
**快捷键 Alt+increase
多态
a instanceof b//若a,b有父子关系则返回true,否则为false
Son s=new Son();
Father F=s ; //子类对象转换成父类,(低转高)不需要强制转换
Father Fa=new son;//父类对象 Fa无法调用子类方法
(Son)Fa.///强制转换为子类(高转低)需要强制转换