2.创建一个第一代手机类,要求包含手机号信息,并包含获取电话号、存储电话号、拨打电话和挂断电话等功能。以此类为父类,派生出子类第二代手机类,增加拍照功能。以第二代手机类来生成对象并模拟实现拨打电话、挂断电话、拍照等功能。
时间: 2024-09-29 20:16:21 浏览: 23
在面向对象编程中,你可以按照以下步骤创建一个第一代手机类(如Phone)和其子类(如SmartPhone),以便实现所需的特性:
**第一步:创建第一代手机类(Phone)**
```java
public class Phone {
private String phoneNumber;
// 构造函数
public Phone(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
// 获取电话号码
public String getPhoneNumber() {
return phoneNumber;
}
// 存储电话号码
public void storePhoneNumber(String newNumber) {
phoneNumber = newNumber;
}
// 拨打电话 (这是一个简单的接口,实际实现可能会涉及网络连接)
public abstract void makeCall();
// 挂断电话 (同样是一个抽象方法,需要具体实现)
public abstract void hangUp();
}
```
**第二步:创建第二代手机类(SmartPhone)继承自Phone**
```java
public class SmartPhone extends Phone {
// 添加额外的属性(例如相机)
private Camera camera;
// 构造函数,接受父类的电话号码和相机
public SmartPhone(String phoneNumber, Camera camera) {
super(phoneNumber);
this.camera = camera;
}
// 实现拨打电话和挂断电话,这里我们可以假设拍照在拨打电话之前或之后
@Override
public void makeCall() {
System.out.println("拨打电话...");
// 这里可以添加拍照操作,但在此示例中略去
}
@Override
public void hangUp() {
System.out.println("挂断电话...");
}
// 拍照功能
public void takePhoto() {
System.out.println("正在拍照...");
}
}
```
**第三步:生成第二代手机对象并模拟功能**
```java
public class Main {
public static void main(String[] args) {
// 创建SmartPhone实例
Camera dummyCamera = new Camera(); // 假设Camera有一个空的实现
SmartPhone smartPhone = new SmartPhone("12345678", dummyCamera);
// 调用功能
smartPhone.storePhoneNumber("98765432");
smartPhone.makeCall();
smartPhone.takePhoto();
smartPhone.hangUp();
}
}
```
在这个例子中,`SmartPhone` 类继承了 `Phone` 并增加了拍照功能。当我们在 `main` 函数中创建 `SmartPhone` 对象并模拟操作时,就可以看到它的多样性和灵活性。
阅读全文