、设计父类和子类。 自行设计一父类。多个子类扩展该父类,父类有私有的域和方法、子类覆盖父类的方法, 代码有差异性。同时子类中设计各自独有的方法设计protected的域和方法,在子类中访问。子类重写toString()方法和equals()方法
时间: 2024-10-11 19:04:45 浏览: 24
在面向对象编程中,设计父类(也称为超类或基类)是为了提供一种通用的行为模板,而子类(派生类)则是为了扩展这种模板并添加特定于自身功能。下面是一个简单的例子:
```java
// 设计父类 Animal
public class Animal {
// 私有域(数据成员)
private String name;
// 公共构造函数和方法
public Animal(String name) {
this.name = name;
}
// 父类方法
protected void eat() {
System.out.println(name + " is eating.");
}
// 定义公共方法,用于展示信息
public String toString() {
return "Animal: " + name;
}
}
// 子类Cat和Dog继承自Animal
public class Cat extends Animal {
// 子类特有的保护域
protected int lives;
// 重写父类eat方法,增加猫吃东西的特点
@Override
protected void eat() {
System.out.println(name + " is eating fish.");
}
// 子类特有的方法
public void meow() {
System.out.println(name + " says 'Meow'.");
}
@Override
public String toString() {
return super.toString() + ", Lives: " + lives;
}
}
public class Dog extends Animal {
// 子类特有的保护域
protected String breed;
// 重写父类eat方法,增加狗吃东西的特点
@Override
protected void eat() {
System.out.println(name + " is eating dog food.");
}
// 子类特有的方法
public void bark() {
System.out.println(name + " says 'Woof woof'.");
}
@Override
public String toString() {
return super.toString() + ", Breed: " + breed;
}
}
// 使用示例
public static void main(String[] args) {
Animal myCat = new Cat("Mimi", 9);
Animal myDog = new Dog("Max", "German Shepherd");
System.out.println(myCat); // 输出: Animal: Mimi, Lives: 9
myCat.eat(); // 输出: Mimi is eating fish.
myCat.meow(); // 输出: Mimi says 'Meow'.
System.out.println(myDog); // 输出: Animal: Max, Breed: German Shepherd
myDog.eat(); // 输出: Max is eating dog food.
myDog.bark(); // 输出: Max says 'Woof woof'.
}
```
阅读全文