package com.company.project.duotai;
public interface Animal {
public void eat();
}
----------------------------------
package com.company.project.duotai;
public class Cat implements Animal{
public void eat() {
System.out.println("猫吃饭");
}
public void catSleep(){
System.out.println("猫睡觉");
}
}
----------------------------------
package com.company.project.duotai;
public class Dog implements Animal{
public void eat() {
System.out.println("狗吃饭");
}
public void kanJia()
{
System.out.println("看家");
}
}
---------------------------------
package com.company.project.duotai;
public class DuotaiDemo {
public static void main(String[] args) {
fuction(new Dog());//运行 结果:狗吃饭,看家
Animal a = new Cat();//接口Animal可以看成父类,用Animal来定义Cat对象的类型
a.eat();//使用接口可以调用父子类共同拥有的方法,运行结果:猫吃饭
//a.catSleep();错误,a不可已直接调用子类独有的方法
Cat c = (Cat)a;//如果子类有新的方法,需要把引用类型a转换成Cat类型
c.catSleep();//然后再调用,运行结果:猫睡觉
}
public static void fuction(Animal a){
a.eat();
if(a instanceof Cat){
Cat c = (Cat)a;
c.catSleep();
}else if(a instanceof Dog){
Dog c = (Dog)a;
c.kanJia();
}
}
}
[java]多态
最新推荐文章于 2024-02-27 19:47:16 发布