多态
实现多态
向上转型 (自动类型转换)
pet dog=new Dog();
只能父类允许被访问的方法和属性,子类重写了父类的方法
向下转型 (强制类型转换)
pet dog=new dog();
dog d=(dog)dog;
不安全,结合instanceof
接口
接口的特点
1.接口中只能有抽象方法,并且具有默认的访问修饰符 public , abstract,可以不写
如果写必须按照该修饰符
2.接口中只能定义常量,并且具有默认修饰符,
public static final ,可以不写,如果写必须按照该修饰符
3.接口不允许被实例化
4.接口可以实现多个,必须重写所有接口中的抽象方法
接口和抽象类的区别
1.方法
接口中只能有抽象方法,而抽象类中可以有抽象方法和非抽象方法
2.变量
抽象类中可以定义普通变量,常量,而接口只能定义常量并且具有默认的修饰符
3.本身
接口和抽象类都不允许被实例化。
4.接口可以实现多个,抽象类只能继承一个
5.关注点不同
抽象类关注的是类和类之间的关系 is a
接口关注的是能力(功能) has a
接口比抽象类更具有代码的扩展性,因为接口强制实现多态
关键字 定义接口:interface
实现接口:implements