设计思路
- 抽象类
Product
:定义为抽象类,是因为它代表产品的通用概念,不同类型产品获取详细信息的方式可能不同,所以将 getDetails
方法定义为抽象方法,由具体子类来实现。
- 接口
Discountable
:定义了获取折扣的规范,使实现该接口的类具备获取折扣的能力。
Book
类:作为具体的产品类,继承自 Product
抽象类以获得产品的基本属性和行为,并实现 getDetails
方法来提供图书的详细信息。同时实现 Discountable
接口,提供获取图书折扣的具体实现。
代码实现(以Java为例)
// 抽象类Product
abstract class Product {
// 抽象方法getDetails用于获取产品详细信息
public abstract String getDetails();
}
// 接口Discountable
interface Discountable {
// 获取折扣的方法
double getDiscount();
}
// Book类继承自Product并实现Discountable接口
class Book extends Product implements Discountable {
@Override
public String getDetails() {
return "This is a book.";
}
@Override
public double getDiscount() {
return 0.1; // 返回10%的折扣
}
}
测试代码(可选)
public class Main {
public static void main(String[] args) {
Book book = new Book();
System.out.println(book.getDetails());
System.out.println("Discount: " + book.getDiscount() * 100 + "%");
}
}