多态
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。
多态的要点:
1.多态是方法的多态,不是属性的多态(多态与属性无关)
2.多态的存在要有3个必要条件;继承,方法的重写,父类引用指向子类对象。
3.父类指向子类对象后,用父类引用调用子类重写的方法,此时就是多态
了。
例子:
public class Animan {
public void shout(){
System.out.println("叫了一声");
}
}
class Dog extends Animan{
@Override
public void shout() {
System.out.println("汪汪汪");
}
}
class Cat extends Animan{
@Override
public void shout() {
System.out.println("喵喵喵");
}
}
class Tiger extends Animan{
@Override
public void shout() {
System.out.println("嗷嗷嗷嗷");
}
}
public class Test {
static void animalcry(Animan a){
a.shout();
}
public static void main(String[] args) {
Dog d = new Dog();
animalcry(d);
animalcry(new Tiger());
}
}
多态的好处:
减少了没必要的重载。只要写一个方法就好了。
在加一点对象转型: