大家好,兔胆包天我又来啦,今天给大家分享的是多态,多态最主要的是父类引用指向子类对象,还是老办法,直接上代码,代码中注解的很详细哦。
这是第一个代码:
//测试多态
public class Animal {
public void shout(){
System.out.println("叫了一声");
}
}
class Dog extends Animal{
public void shout(){
System.out.println("汪汪汪");
}
public void seeDoor(){
System.out.println("看门");
}
}
class Cat extends Animal{
public void shout(){
System.out.println("喵喵喵");
}
public void catchMouse(){
System.out.println("猫抓老鼠");
}
}
第二个代码:
```javascript
//测试多态,以及测试对象的转型:向上转型和向下转型
package com.DuoTai;
public class Test {
static void animalCry(Animal a){//定义一个方法,()内是变量。
a.shout();//到这里并不知道输出什么叫声
}
public static void main(String[]args){
Dog d=new Dog();
animalCry(d);//父类引用指向子类对象,然后输出汪汪汪
animalCry(new Cat());//直接调用Cat方法
Animal a= new Dog();//向上转型:类似于int转型为double,非常简单
//a.seeDoor; 这句语句无法执行,因为编译过程只会看Animal的方法
Dog d2=(Dog)a;// 强制转型,父类转子类,向下转型
d2.seeDoor();// 现在就可以执行了。
}
}