创建一个动物类,在创建一个猫类和狗类继承动物类,在测试类中进行测试,把猫类和狗类共有的抽象到动物类中,在进行继承
时间: 2024-09-12 21:15:28 浏览: 50
猫和狗图像分类数据【Kaggle竞赛】.zip
在面向对象编程中,创建一个基类(比如动物类)并在其基础上创建子类(如猫类和狗类)是一种常见的设计模式。在这种模式下,子类会继承基类的属性和方法,并且还可以添加或重写一些特有的属性和方法。下面我将给出一个简单的例子来说明这个过程:
首先,我们定义一个动物类Animal,这个类中包含了一些基本的属性和方法,比如名称name和叫声sound。然后,我们定义两个子类Cat和Dog,它们分别继承自Animal类,并且根据各自的特点重写或者添加新的方法和属性。
```java
// 动物基类
public abstract class Animal {
protected String name; // 动物的名字
public Animal(String name) {
this.name = name;
}
// 抽象方法,需要在子类中实现
public abstract void makeSound();
// 其他动物共有的方法
public void eat() {
System.out.println(name + "正在吃东西。");
}
}
// 猫类
public class Cat extends Animal {
public Cat(String name) {
super(name); // 调用父类的构造方法
}
@Override
public void makeSound() {
System.out.println(name + ":喵喵叫。");
}
}
// 狗类
public class Dog extends Animal {
public Dog(String name) {
super(name); // 调用父类的构造方法
}
@Override
public void makeSound() {
System.out.println(name + ":汪汪叫。");
}
}
// 测试类
public class TestAnimals {
public static void main(String[] args) {
Animal cat = new Cat("小花");
Animal dog = new Dog("旺财");
cat.makeSound(); // 输出:小花:喵喵叫。
dog.makeSound(); // 输出:旺财:汪汪叫。
cat.eat(); // 输出:小花正在吃东西。
dog.eat(); // 输出:旺财正在吃东西。
}
}
```
在这个例子中,我们定义了一个抽象类Animal,它要求所有的子类都必须实现makeSound方法。Cat类和Dog类都继承自Animal类,并且提供了makeSound方法的具体实现。在测试类TestAnimals中,我们创建了Cat和Dog的实例,并调用了它们的方法来展示多态的特性。
阅读全文