java封装继承多态练习,写个小练习要求
时间: 2024-10-13 15:15:32 浏览: 42
在Java中,封装、继承和多态是面向对象编程的三大特性,通常用来构建模块化、可复用和易于维护的代码。下面是一个简单的练习要求:
**练习目标:**
1. **创建一个Animal类**:作为基类或父类,包含共同的属性如名字和声音,以及一个通用的行为(例如`makeSound()`方法)。
2. **定义两个派生类**:例如Dog和Cat,分别继承自Animal类,并重写`makeSound()`方法以实现多态。
3. **封装属性**:使用private访问修饰符保护属性,并提供getters和setters以控制数据的访问。
4. **演示继承与多态**:创建 Animal 类型的对象数组,动态存储Dog和Cat实例,通过数组统一调用 makeSound() 方法。
**编写示例代码**:
```java
public class Animal {
private String name;
private String sound;
// getter and setter methods...
public void makeSound() {
System.out.println("Making a generic sound.");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow!");
}
}
// Main method for demonstration
public static void main(String[] args) {
Animal[] animals = new Animal[2];
animals[0] = new Dog();
animals[1] = new Cat();
for (Animal animal : animals) {
animal.makeSound(); // 输出:Woof! 和 Meow!
}
}
```
**相关问题:**
1. 这个练习的主要目的是什么?
2. 在这个例子中,如何体现封装原则?
3. 如果我想添加一个新的动物种类,应该如何操作以保持代码的可扩展性?
阅读全文