【发布时间】:2014-11-21 22:52:26
【问题描述】:
我是 Java 新手。所以问题可能听起来很简单,但我被卡住了,无法弄清楚为什么这段代码返回 null 和 0.0 ?
文件:Transport.java
公共类运输{
私有字符串名称;
私人双倍价格;
公共交通(字符串名称,双倍价格){
this.name = 名称;
this.price = 价格;
}
公共字符串车名(){
返回名称;
}
公共双车价格(){
退货价格;
}
}
文件:Car.java
公共类汽车扩展运输{
受保护的字符串名称;
受保护的双倍价格;
公共汽车(字符串名称,双倍价格){
超级(名称,价格);
}
@覆盖
公共字符串车名(){
返回名称;
}
@覆盖
公共双车价格(){
返回价格 * 1.5;
}
}
文件:Main.java
公共类主要{
公共静态无效主要(字符串[]参数){
汽车 c = new Car("CarBrand", 1000);
System.out.println("名称:" + c.carName());
System.out.println("价格:" + c.carPrice());
}
}
输出
名称:空 价格:0.0
【问题讨论】:
-
如果你的类名为“Car”,通常不需要将“car”放在属性名称中。您可能还想尽早习惯重要的 bean 模式,并通过“get”和“set”为属性访问器添加前缀。考虑这样的名称: Car myCar = new Car(...), myCar.getname()
标签: java overriding