一、多态
1. 生活中的状态:同一种事物,由于条件不同,则产生不同的结果,事物的多种表现状态。
程序中的多态:同一个引用类型,使用不同的实例,执行不同的操作。
父类的引用 子类的实现(使用多态进行实例化)
Pet pet=new Dog();
2.发生在继承关系中
3.多态实现前提:
(1)类与类之间存在继承关系。
(2)类与接口之间存在实现关系。
4.多态实现步骤
(1)编写父类。
(2)编写子类,一定要有子类重写父类的方法。
(3)使用时,就可以使用父类的引用类型,子类的实例。
5.多态实现的方式
(1)Pet pet=new Dog();
(2)使用父类作为方法的形参实现多态,调用具体方法传入实参作为子类的实例。
(3)使用父类作为方法的返回值实现多态,定义方法的返回值为父类,调用方法的返回值为子类的实例。
6.优点:程序的可扩展性
缺点:使用多态进行实例化,实例化的对象只能调用子类重写父类的方法,子类特有方法无法调用。
(1)向上类型(自动类型转换)
Pet pet=new Dog();
好处:隐藏子类型,提供代码的可扩展性。
弊端:只能调用子类重写方法,子类特有的方法我们无法调用。
(2)向下类型(强行类型转换)
int b=(int)9.8;
Pet pet=new Dog();
pet.eat();
Dog dog=(Dog)pet;
dog.catch FlyDisc();
好处:能调用子类特有方法。
弊端:容易发生异常,类型转换异常。
使用前进行判断,判断一个对象是否匹配另一个对象类型。
二、接口
1.抽象类 代表一种能力。
例如:电脑中的USB口。
接口时特殊的抽象类,(此抽象类中只能房抽吸那个方法和静态常量)
解决Java的单继承特性。
2.public abstract class A(){
private age;
public abstract void add();
}
public void A(){
静态常量
抽象类
}
3.implement 实现
接口特点
(1)不能被实例化。
(2)实现类必须实现接口中所有的方法。
(3)实现类可以实现多个接口。
(4)所有变量都是静态常量。
4.接口(interface) 实现(implement)
注意:不同包的类或者接口必须导包,interface接口不能被实例化。
接口的类型,实现类的实例。
Lock IS=new stodoor();
接口 实现类
5.使用接口完成多态的实例化。
6.面向接口的编程不用考虑具体实现细节。
}