package jiCheng_duoTai;
public class Animal_Food_Man {
public static void main(String[] args) {
Cat c1=new Cat("小花喵",3);
Dog d1=new Dog("小黄汪",6);
Man m1=new Man();
Bone b1=new Bone("牛骨头");
m1.feed(c1,b1);
m1.feed(d1,b1);
}
}
class Animal {//父类
String name;
int age;
//构造方法
public Animal() {}
public Animal(String name,int age) {
this.name=name;
this.age=age;
}
//set get 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//成员方法
public void cry() {
System.out.println("我是动物,不确定怎么叫");
}
public void eat() {
System.out.println("我是动物,不确定吃什么");
}
}
class Cat extends Animal {
//构造方法
public Cat() {
super();//调用父类中的无参的构造方法
}
public Cat(String name,int age) {
super(name,age);//调用父类中的同类型同参数的构造方法
}
//重写父类方法(方法覆盖)
public void cry() {
System.out.println("我是"+super.name+"今年"+super.age+"岁,我喵喵叫");
}
public void eat() {
System.out.println("我是小猫我吃鱼");
}
}
class Dog extends Animal {
//构造方法
public Dog() {
super();//调用父类中的无参的构造方法
}
public Dog(String name,int age) {
super(name,age);//调用父类中的同类型同参数的构造方法
}
//重写父类方法(方法覆盖)
public void cry() {
System.out.println("我是"+super.name+"今年"+super.age+"岁,我汪汪叫");
}
public void eat() {
System.out.println("我是小狗我吃骨头");
}
}
class Food {//父类
String name;//食物的名称
//构造方法
public Food() {}
public Food(String name) {
this.name=name;
}
//成员方法
public void showName() {
}
}
class Fish extends Food {
//构造方法
public Fish() {
super();
}
public Fish(String name) {
this.name=name;//这里的this.name=name相当于super(name);,调用父类中的name属性
}
//重写父类方法(方法覆盖)
public void showName() {
System.out.println("这里有子类鱼类"+super.name);
}
}
class Bone extends Food{
//构造方法
public Bone() {
super();
}
public Bone(String name) {
this.name=name;
}
//重写父类方法(方法覆盖)
public void showName() {
System.out.println("这里有子类骨头类"+super.name);
}
}
class Man {//父类
//给动物喂食物 //父类引用的多种状态叫做:多态
//Java允许父类的引用变量引用它的子类的实例(对象)
//Animal animal = new Cat(); 这种转换时自动完成
public void feed (Animal an,Food fd) {
an.cry();
an.eat();
fd.showName();
}
}
输出显示:
我是小花喵今年3岁,我喵喵叫
我是小猫我吃鱼
这里有子类骨头类牛骨头
我是小黄汪今年6岁,我汪汪叫
我是小狗我吃骨头
这里有子类骨头类牛骨头
Java---动物管理系统----(动物吃什么、怎么叫、多大了、叫什么)---继承与多态
最新推荐文章于 2023-05-28 07:47:36 发布