多态
父类进行对象的声明,子类进行对象的赋值
例:Person p = null;
p = new Teacher();
p = new Student();
但是当我们使用父类来声明,只能调用父类里被定义的方法,如果父类里的方法在子类中被重写的话,调用该方法时,执行的是子类中被重写后的方法。非要调用子类里有而父类里没有的方法的话,可以将对象进行强制类型转换。
例:(Teacher)p.teach;
抽象类
抽象类里不一定有抽象方法,但是抽象方法一定只能在抽象类里面。
抽象类不能构造对象,因为抽象类里的方法不完整。
抽象类可以被继承,子类可以把抽象类里的方法覆盖。如果子类是一个完整的类,那么它必须把父类中所有的抽象方法都进行覆写。
抽象类里可以有构造方法,为了方便子类继承的时候调用。
抽象类立即可以包含抽象方法也可以包含正常方法
抽象方法的声明:
Abstarct void xx();//没有方法体
接口
接口声明:interface A{ }
接口不能被继承,只能被实现:implement
可以用接口声明对象
接口里只能包含抽象方法,接口是完全抽象化的类,里面没有完整的方法
我们可以通过接口定义一个功能,其他类可以实现这个借口来拥有这个功能,用来扩展功能
接口既可以被抽象类实现也可以被具体类实现
java.lang
当我们把对象当作字符串使用的时候,默认会调用toString方法
匿名内部类
当有些类在开发过程中仅仅使用一次的场合,就可以使用匿名内部类,具体使用方法见:siki学院java第二季任务54