利用多态性,编程创建一个手机类Phones,定义打电话方法call()。创建两个子类:苹果手机类iPhone和Android手机类APhone,并在各自类中重写方法call。创建一个人类Person,定义使用手机打电话的方法use_phone_call()
时间: 2024-12-15 18:25:23 浏览: 19
在面向对象编程中,利用多态性,我们可以设计出一个通用的手机类`Phones`,并在此基础上创建具有特定功能的子类。例如,我们有`iPhone`和`APhone`这两个类,它们都继承自`Phones`,并且覆盖了`call()`方法以体现各自的特性。
```java
// 手机类 Phones
public class Phones {
public void call() {
System.out.println("默认打电话");
}
}
// 苹果手机 iPhone 子类
public class iPhone extends Phones {
@Override
public void call() {
System.out.println("使用iPhone打电话,可能是FaceTime或者普通电话");
}
}
// Android手机 APhone 子类
public class APhone extends Phones {
@Override
public void call() {
System.out.println("使用Android手机打电话,可能是拨号或者VoIP");
}
}
// 人类 Person 类
public class Person {
private Phones phone;
public Person(Phones phone) {
this.phone = phone;
}
// 使用多态调用打电话方法
public void use_phone_call() {
phone.call(); // 这里会动态调用各个子类的实际call方法
}
}
```
在这个例子中,`Person`类有一个`phone`属性,它可以是`iPhone`、`APhone`或其他类型的`Phones`子类实例。当我们通过`Person`对象调用`use_phone_call()`方法时,实际执行的是相应子类的`call()`方法,体现了多态带来的灵活性。
阅读全文