java饲养员喂动物案例,封装、继承、多态、接口
封装、继承、多态子类继承父类,所有非私有的属性和方法(不包含构造器和主方法)Java只能单一继承,一个类只能有一个父类(可以通过多重继承来实现多继承)所有的类都直接或间接继承了Object,Object万类之祖......
·
1.创建动物类Animal
public abstract class Animal {
//动物类
private String name;
//不知道是什么动物,吃什么也不知道,abstract抽象
public abstract void eat();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.接口类Jump
public interface Jump {
void jump();
}
3.Dog类
/**
* 狗类
* 共有属性和行为直接从动物类继承
*/
public class Dog extends Animal implements Jump{
@Override
public void eat() {
System.out.println(super.getName()+"吃骨头");
//super构造器,通过子类中使用super调用父类中的构造器
}
@Override
public void jump() {
System.out.println(super.getName()+"汪汪汪");
}
}
4.Cat类
/*
* 猫类
* 继承动物类的属性和行为
* */
public class Cat extends Animal implements Jump{
@Override
public void eat() {
//super构造器,通过子类中使用super调用父类中的构造器
System.out.println(super.getName()+"吃鱼");
}
@Override
public void jump() {
System.out.println(super.getName()+"喵喵喵");
}
}
5.饲养员类
//饲养员类,很多动物,一个饲养员
public class Feeder {
private String name;//饲养员名字
//喂狗的方法
public void feed(Dog dog){
System.out.println(this.name+"喂"+dog.getName());
dog.eat();
}
//喂猫
public void feed(Cat cat){
System.out.println(this.name+"喂"+cat.getName());
cat.eat();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
6.测试类
public class Test { //测试类
public static void main(String[] args) {
//创建狗类对象
Dog dog = new Dog();
dog.setName("大黄");
//dog.eat();
//dog.jump();
//创建猫类对象
Cat cat = new Cat();
cat.setName("狸花");
//cat.eat();
//cat.jump();
//饲养员对象
Feeder feeder = new Feeder();
feeder.setName("王五");
//饲养动物
feeder.feed(dog);
feeder.feed(cat);
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)