创建相机抽象类Camera类,抽象类Camera中有私有属性: name和color,抽象方法:getPic0),对2个属性提供必要的gettter/setter方法,并且构造方法只提供满参构造方法
时间: 2024-10-13 10:08:38 浏览: 35
创建一个名为`Camera`的抽象类,用于表示通用的相机,可以这样设计:
```java
public abstract class Camera {
// 私有属性
private String name;
private String color;
// 构造方法(满参构造)
public Camera(String name, String color) {
this.name = name;
this.color = color;
}
// 提供getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
// 抽象方法,需要子类实现
public abstract Picture getPicture();
// 定义一个返回图片的简单方法作为示例(非抽象),可能会在实际应用中移除
public Picture takePicture() {
return new Picture("Default " + name);
}
}
// 相应的子类需实现getPicture方法
class DigitalCamera extends Camera {
public DigitalCamera(String name, String color) {
super(name, color);
}
@Override
public Picture getPicture() {
return new DigitalPicture("Digital Picture from " + name);
}
}
class FilmCamera extends Camera {
public FilmCamera(String name, String color) {
super(name, color);
}
@Override
public Picture getPicture() {
return new FilmPicture("Film Picture from " + name);
}
}
```
在这个例子中,`Camera`是一个抽象类,它有两个私有属性`name`和`color`,以及它们对应的getter和setter方法。子类`DigitalCamera`和`FilmCamera`必须实现`getPicture()`这个抽象方法,每个子类有自己的特定拍照实现。
阅读全文