package com.aflfte.oo2;
/**
* 多态的测试
* @author root
*引用父类可直接调用子类的方法实现多重状态运行
*/
public class TestPolym {
public static void main(String[] args) {
Animal a=new Animal();
animalCry(a);
Animal d=new Dog();//这样写与Dog d=new Dog();相同 子类可以自动转型为父类
animalCry(d);
Animal c=new Cat();
Dog d2=(Dog) d;//向下转型(父类转子类)时必須为强制转型方法实现
d2.seeDoor();//在调用子类私有方法时必须进行强制转型后才可使用
Dog d3=(Dog) c;//不同强制将子类属性转为另一个子类属性,否则为出现转型错误
d3.seeDoor();
}
static void animalCry(Animal a) {//多态写法,通过父类引用,调用子类的方法
a.shout();
}
}
class Animal{
public void shout() {
System.out.println("叫了一声!");
}
}
class Dog extends Animal{
public void shout() {
System.out.println("㕵㕵㕵㕵!!");
}
public void seeDoor() {//Dog的私有方法
System.out.println("看门。。");
}
}
class Cat extends Animal{
public void shout() {
System.out.println("喵喵喵喵!!");
}
}
« final修饰
|
封装的使用»
|