例如,我有抽象类Shape
,它获取形状的坐标:
public abstract class Shape{
private int x;
private int y;
public Shape(int x, int y){
this.x=x;
this.y=y
}
public abstract void onDraw();
}
现在我的课程Rect
来自Shape
:
public class Rect extends Shape{
private int height;
private int width;
public Rect(int height, int width){
this.height=height;
this.width=width;
}
@Override
public void onDraw(){
//this method should get the width and height and the coordinates x and y, and will print the shape rect
}
}
现在我的问题是:如何从Shape
中获取抽象类Rect
的坐标x和y?
答案 0 :(得分:6)
简单地为他们制作一些吸气剂:
public abstract class shape{
private int x;
private int y;
public shape(int x,int y){
this.x=x;
this.y=y
}
public abstract void onDraw();
}
public int getX() {
return this. x;
}
public int getY() {
return this. y;
}
或使属性受到保护。
请注意,如果您创建rect
,则永远不会设置x和y,因为您没有调用超级构造函数
答案 1 :(得分:5)
只要它们是private
,你就无法获得它们。改为使用protected
。
可以找到更多信息here.
答案 2 :(得分:0)
你做不到。 私有的全部意义在于你无法获得变量。如果班级没有给出任何解决方法,你就无法得到它。