java的多态,看了很多遍,从来就没注重过,也从来就咩有高看过,但是随着知识越学越多,才发现,
java的精髓竟然是多态,(我现在想,PHP把多态性去掉为了什么,,不过PHP确实简单)
因为多态有一个特性:增强了程序的可扩展行;
//基类
public class Animal {
public void sing(){
System.out.println("wo zai jiao");
}
}
public class Dog extends Animal{
public void sing(){
System.out.println("gou gou");
}
}
public class Mao extends Animal{
public void sing(){
System.out.println("mao mao");
}
}
//主程序
public class nihao {
public static void main(String[] args) {
Animal ani=new Mao();
ani.sing();
}
}
这个是类的多态,还有接口的多态,,,我一直认为他们是不一样的,但是最后我才发现,他们的实现是一样的,,
类的多态只能看到自己在基类定义,并且子类覆盖的方法
借口的多态只能看到自己在借口定义,在实现接口的类的方法;
所以他们是一个性质的,他们都有限制。
最后,需要记住三句话:多态的实现必须具备的三个条件:
1继承
2重写方法或者覆盖override
3 父类引用指向子类对象