多态
- 多态是同一个行为具有多个不同表现形式或形态的能力
- 多态就是同一个接口,使用不同的实例而执行不同操作
- 多态性是对象多种表现形式的体现
现实中,例如我们按下 F1 键这个动作:
如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
如果当前在 Word 下弹出的就是 Word 帮助;
在 Windows 下弹出的就是 Windows 帮助和支持。
同一个事件发生在不同的对象上会产生不同的结果
多态的优点README
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
多态存在的三个必要条件
继承
重写
父类引用指向子类对象:Parent p = new Child();
多态的实现方式
继承方式实现多态
重写eat方法
public abstract class Animal {
public abstract void eat();
}
public class Cat extends Animal{
@Override
public void eat() {
System.out.printf("吃老鼠");
}
}
public class Dog extends Animal{
@Override
public void eat() {
System.out.printf("吃骨头");
}
}
接口实现多态
public interface Person {
void eat();
void war();
}
public interface Dog {
void eat();
void tian();
}
public class DogPerson implements Dog,Person{
@Override
public void eat() {
System.out.println("喜欢吃碗边饭");
}
@Override
public void war() {
}
@Override
public void tian() {
}
}
public class DogTest {
@Test
public void test(){
Dog dog = new DogPerson();
dog.eat();
}
}