分析:
①猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:get/set方法,抓老鼠()
②狗: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:get/set方法,看门()
③共性: 成员变量:姓名,年龄;构造方法:无参,带参;成员方法:get/set方法
步骤:
1、定义动物类(Animal) 【成员变量:姓名,年龄】【 构造方法:无参,带参】【成员方法:get/set方法】
2、定义猫类(Cat),继承动物类 【构造方法:无参,带参】【成员方法:抓老鼠() 】
3、定义狗类(Dog),继承动物类【构造方法:无参,带参】【成员方法:看门() 】 4、定义测试类(AnimalDemo),写代码测试
动物类
public class Animal{ private String name; private int age; public Animal() { } public Animal(String name, int age) { this.name = name; this.age = age; } 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; } }
1234567891011121314151617181920212223242526272829猫类
class Cat extends Animal{ public Cat() { } public Cat(String name, int age) { super(name, age); } public void catchMouse(){ System.out.println("猫抓老鼠"); } } class Dog extends Animal{ public Dog() { } public Dog(String name, int age) { super(name, age); } public void lookdoor(){ System.out.println("狗看门"); } }
1234567891011121314151617181920212223242526测试类
public class AnimalDemo{ public static void main(String[] args) { //创建猫类对象并进行测试 Cat c1 = new Cat(); c1.setName("加菲猫"); c1.setAge(5); System.out.println(c1.getName() + "," + c1.getAge()); c1.catchMouse(); Dog c2 = new Dog("二哈狗", 6); System.out.println(c2.getName() + "," + c2.getAge()); c2.lookdoor(); } }
12345678910111213141516动物类
public class Animal { private String name; private int age; public Animal() { } public Animal(String name, int age) { this.name = name; this.age = age; } 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 eat(){ System.out.println("动物吃东西"); } }
123456789101112131415161718192021222324252627282930313233猫类
public class Cat extends Animal { public Cat() { } public Cat(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("猫吃鱼"); } } 1234567891011121314
狗类
public class Dog extends Animal { public Dog() { } public Dog(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("狗吃骨头"); } } 12345678910111213
测试类
public class Demo { public static void main(String[] args) { Animal cat=new Cat(); cat.setName("加菲猫"); cat.setAge(5); System.out.println(cat.getName() + "," + cat.getAge()); cat.eat(); Animal dog=new Dog(); dog.setName("二哈狗"); dog.setAge(4); System.out.println(dog.getName() + "," + dog.getAge()); dog.eat(); } } 123456789101112131415
动物类
public abstract class Animal01 { private String name; private int age; public Animal01() { } public Animal01(String name, int age) { this.name = name; this.age = age; } 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 abstract void eat(); }
12345678910111213141516171819202122232425262728293031猫类
public class Cat01 extends Animal01{ public Cat01() { } public Cat01(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("猫吃鱼"); } } 1234567891011121314
狗类
public class Dog01 extends Animal01 { public Dog01() { } public Dog01(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("狗吃骨头"); } } 1234567891011121314
测试类
public class Demo01 { public static void main(String[] args) { Animal01 cat=new Cat01(); cat.setName("加菲猫"); cat.setAge(6); System.out.println(cat.getName() + "," + cat.getAge()); cat.eat(); Animal01 dog=new Dog01(); dog.setName("二哈狗"); dog.setAge(6); System.out.println(dog.getName() + "," + dog.getAge()); dog.eat(); } } 123456789101112131415
案例需求
对猫和狗进行训练,他们就可以跳高了,这里加入跳高功能。 请采用抽象类和接口来实现猫狗案例,并在测试类中进行测试。
动物类
public abstract class Animal02 { private String name; private int age; public Animal02() { } public Animal02(String name, int age) { this.name = name; this.age = age; } 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 abstract void eat(); }
1234567891011121314151617181920212223242526272829跳高接口
public interface Jumpping { public abstract void jump(); } 123
猫类
public class Cat02 extends Animal02 implements Jumpping { public Cat02() { } public Cat02(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("猫吃鱼"); } @Override public void jump() { System.out.println("猫可以跳高"); } }
12345678910111213141516171819测试类
public class Demo02 { public static void main(String[] args) { //创建对象,调用方法 Jumpping j = new Cat02(); j.jump(); System.out.println(""); Animal02 a = new Cat02(); a.setName("加菲猫"); a.setAge(5); System.out.println(a.getName()+","+a.getAge()); a.eat(); ((Cat02) a).jump(); System.out.println(""); Cat02 c = new Cat02(); c.setName("加菲猫"); c.setAge(5); System.out.println(c.getName()+","+c.getAge()); c.eat(); c.jump(); } }
1234567891011121314151617181920212223相关知识
Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例
Java面向对象
多态
java用继承编写宠物乐园
Java的抽象类:猫狗案例
任务三、学生喂养三种宠物:猫、狗和鸟
多态应用
Educoder–Java面向对象 继承和多态综合练习 第1关:练习
学会继承、多态、封装(1)——Java实现宠物店(领养宠物)
宠物游戏系统 java
网址: Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例 https://m.mcbbbk.com/newsview393991.html
上一篇: 猫咪剪了指甲还会跳高吗,宠物猫跳 |
下一篇: 放慢10倍才发现,原来猫是这样跳 |