假设我有一个名为 book 的抽象类,它有一个私有变量 price,并且它的 getter 方法也是抽象的。
public abstract class Book{
private double price;
public abstract double getPrice();
}
现在假设我有一个用过的 Book 类,它继承了 Book 的所有属性,但也有一个与之关联的年龄。我还希望这个类从它的父类中覆盖 getPrice 方法。这是我卡住的地方,因为价格变量是私有的,而且父类有一个抽象的 getter 方法。
public class UsedBook extends Book{
private int age;
//constructor
public UsedBook(){
age = 1;
}
@Override
public double getPrice(){
//How can I implement this method so as a user I can access the price?
}
}
谢谢你
原文由 Kevag6 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果
Book
的所有实现都必须实现getPrice()
,并且实现总是只返回价格,它不应该是抽象的。您应该只在抽象类中定义吸气剂:如果这不起作用,并且您需要从继承类中直接访问
price
变量,那么您应该将其更改为protected
而不是private