多态就是同一种行为有不同的表现形式
也可以是同一个接口,有不同的实例实现不同的行为
class Animal{
protected String name;
public Animal() {
this.name = "Animal";
}
public String getName() {
return this.name;
}
}
class Cat extends Animal{
Cat(){
name = "Cat";
}
}
class Dog extends Animal{
Dog(){
name = "Dog";
}
}
public class Test {
static public void board(Animal s) {
System.out.println(s.getName());
}
public static void main(String[] args) {
Animal animal = new Animal();
Animal cat = new Cat();
Animal dog = new Dog();
board(animal);
board(cat);
board(dog);
}
}
多态需要注意的事项
参数必须要一样,且返回类型必须兼容
例如不能把public的方法降低为private。
基类的成员方法只能被它的派生类重写。
声明为 final 的方法不能被重写。
声明为 static 的方法不能被重写,但是能够被再次声明。
构造方法不能被重写
如果不能继承一个方法,那么它一定不能被重写
重载:就是方法名称相同,返回值类型不同
|