多态 static 表示静态 编译的时候只调用Animal类中的eat 不会调用其他类中的eat 不建议用static;
Posted zhangmenghui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态 static 表示静态 编译的时候只调用Animal类中的eat 不会调用其他类中的eat 不建议用static;相关的知识,希望对你有一定的参考价值。
package cn.zmh.A;
//动物类
public class Animal {
static void eat(){
}
}
//猫类
class Cat extends Animal {
static void eat(){
System.out.println("猫吃鱼");
}
}
//狗类
class Dog extends Animal {
static void eat(){
System.out.println("狗吃骨头");
}
}
//人类 喂猫喂狗
class Persosn extends Animal {
void feedAnimal(Animal anim){
//打印运行的地址
//方法前面加上static 这时anim直接提示你变成Animal;
anim.eat();
}
}
//测试类
class TestAnimal {
public static void main(String[] args){
//多态写法
Animal d = new Dog();
Animal c = new Cat();
Persosn p = new Persosn();
//static 静态
// 调用的是Animal类 不会调用Dog类和Cat类的eat;
//子类的值d赋值给父类Animal
Animal aimn = (Animal) d;
p.feedAnimal(aimn);
//子类的值c赋值给父类Animal
Animal aimn1 = (Animal) c;
p.feedAnimal(aimn1);
}
}
以上是关于多态 static 表示静态 编译的时候只调用Animal类中的eat 不会调用其他类中的eat 不建议用static;的主要内容,如果未能解决你的问题,请参考以下文章