- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,我刚刚练习继承,遇到了问题。我在我的汽车类(子类)中收到错误,车辆(父类)中的变量不可见。我没有做任何事情来改变这一点,我什至不知道如何让它隐形。谁能帮我解决这个问题。
public class Vehicle
{
private String make, model, colour;
private int registrationNumber;
public Vehicle()
{
this.make = "";
this.model = "";
this.colour = "";
this.registrationNumber = 0;
}
public Vehicle(String make, String model, String colour,
int registrationNumber)
{
this.make = make;
this.model = model;
this.colour = colour;
this.registrationNumber = registrationNumber;
}
public String getMake()
{
return make;
}
public void setMake(String make)
{
this.make = make;
}
public String getModel()
{
return model;
}
public void setModel(String model)
{
this.model = model;
}
public String getColour()
{
return colour;
}
public void setColour(String colour)
{
this.colour = colour;
}
public int getRegistrationNumber()
{
return registrationNumber;
}
public void setRegistrationNumber(int registrationNumber)
{
this.registrationNumber = registrationNumber;
}
public String toString()
{
return "Vehicle [make=" + make + ", model=" + model + ", colour="
+ colour + ", registrationNumber=" + registrationNumber + "]";
}
}
public class Car extends Vehicle
{
private int doors;
private String shape;
public Car()
{
super();
this.doors = 0;
this.shape = "";
}
public Car(String make, String model, String colour, int registrationNumber)
{
super(make, model, colour, registrationNumber);
this.make = make;
this.model = model;
this.colour = colour;
this.registrationNumber = registrationNumber;
}
}
错误信息:
Description Resource Path Location Type
The field Vehicle.make is not visible Car.java /VehicleApp/src line 19 Java Problem
The field Vehicle.model is not visible Car.java /VehicleApp/src line 20 Java Problem
The field Vehicle.colour is not visible Car.java /VehicleApp/src line 21 Java Problem
The field Vehicle.registrationNumber is not visible Car.java /VehicleApp/src line 22 Java Problem
最佳答案
“问题”是变量是私有(private)
,因此子类无法使用。据推测,您正在尝试直接在 Car
中访问它们(很难判断,因为您没有包含源代码)。
您可以将它们设为 protected 变量 - 但我强烈建议您将它们保留为私有(private)
,而使用您的属性(get 和 set 方法)子类。字段是一个实现细节 - 您应该考虑向子类以及其他代码公开哪些API。
有关 Java 中访问控制的更多详细信息,请参阅 JLS section 6.6 。例如:
Otherwise, if the member or constructor is declared
private
, then access is permitted if and only if it occurs within the body of the top level class (§7.6) that encloses the declaration of the member or constructor.
关于java - 继承不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978827/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!