设计一个抽象类People,具有抽象方法say0; 设计子类ChinaPeople,AmericaPeople,实现抽象方法say0); 设计一个Speak类,提供speaking()方法,以上转型对
时间: 2024-10-20 07:13:48 浏览: 26
设计一个抽象类`People`,用于表示一般的人,我们可以这样定义:
```java
abstract class People {
public abstract void say0(); // 抽象方法say0
}
// 子类中国人的实现
class ChinaPeople extends People {
@Override
public void say0() {
System.out.println("中国人说:你好");
}
}
// 子类美国人的实现
class AmericaPeople extends People {
@Override
public void say0() {
System.out.println("美国人说:Hello");
}
}
```
接着,我们创建一个`Speak`类,这个类用于处理不同人说的行为,通过`People`类型的引用进行转换:
```java
class Speak {
public void speaking(People person) {
person.say0();
}
}
public class Main {
public static void main(String[] args) {
Speak talker = new Speak();
// 转型并实例化对象
ChinaPeople chinaPerson = new ChinaPeople();
AmericaPeople americaPerson = new AmericaPeople();
// 使用Speak类的speak方法,自动调用子类的say0
talker.speaking(chinaPerson); // 输出 "中国人说:你好"
talker.speaking(americaPerson); // 输出 "美国人说:Hello"
}
}
```
阅读全文