JAVA多态
多态: 都是同一个类型,调用同一个方法,却能呈现不同的状态.
要实现类的多态,需要如下条件
- 父类(接口)引用指向子类对象
- 调用的方法有重写
多态的使用
//定义一个接口
public interface abc{
public void effect();
}
在类中定义一个方法
public void attack(abc i){
i.effect();
}
public static void main(String[] args) {
//子类继承父类,并且都实现了接口,重写了父类方法
Man person1 = new Man();
Superman person2 = new Superman();
Ironman person3 = new Ironman();
person1.attack(person2); //实现Superman的重写方法
person1.attack(person3);//实现Ironman的重写方法
}
隐藏
重写是子类覆盖父类的对象方法,
隐藏就是子类覆盖父类的类方法.
Man one = new Superman();//
//one.OK是一个类方法
one是父类类型的引用, 但是指向一个子类对象. one.OK 会调用父类的方法?还是子类的方法?答案是父类.