class position{
int x,y;
position(int px,int py){x=px;y=py;}
void show(){System.out.println(x+","+y);}
}
class spot extends position {
boolean display;
spot(int sx,int sy,boolean sf){ super(sx,sy); dispaly=sf;}
void change(int cx,int cy){x=cx;y=cy;}
}
class box extends spot{
int r;
box(int bx,int by,int br,boolean bf){super(bx,by,bf);r=br;}
void add(int da){r+=da;}
void red(int da){r+=da;}
void show(){
System.out.print("起点:");super.show();
System.out.print("边长:"+r);
if(display)System.out.println("显示");
else System.out.println("不显示");
}
}
class jex6_23{
public staic void main(String args[]){
spot s=new spot(100,100,false);
System.out.print("s点的坐标;");s.show();
box b=new box(100,100,30,true);
b.show();
b.change(200,300);b.add(50);
b.show();
}
}
super(sx,sy);
super(bx,by,bf);
那位能解释一下这两句的意思,所起的作用
谢谢!!!!!
int x,y;
position(int px,int py){x=px;y=py;}
void show(){System.out.println(x+","+y);}
}
class spot extends position {
boolean display;
spot(int sx,int sy,boolean sf){ super(sx,sy); dispaly=sf;}
void change(int cx,int cy){x=cx;y=cy;}
}
class box extends spot{
int r;
box(int bx,int by,int br,boolean bf){super(bx,by,bf);r=br;}
void add(int da){r+=da;}
void red(int da){r+=da;}
void show(){
System.out.print("起点:");super.show();
System.out.print("边长:"+r);
if(display)System.out.println("显示");
else System.out.println("不显示");
}
}
class jex6_23{
public staic void main(String args[]){
spot s=new spot(100,100,false);
System.out.print("s点的坐标;");s.show();
box b=new box(100,100,30,true);
b.show();
b.change(200,300);b.add(50);
b.show();
}
}
super(sx,sy);
super(bx,by,bf);
那位能解释一下这两句的意思,所起的作用
谢谢!!!!!
int x,y;
position(int px,int py){x=px;y=py;}
void show(){System.out.println(x+","+y);}
}
class spot extends position {
boolean display;
spot(int sx,int sy,boolean sf){ super(sx,sy); dispaly=sf;}
//spot继承了postion类,可以使用父类的构造函数,但spot有3个形参,父类中只有两个形参
所以要分开写!super(sx,sy)means :x=sx,y=sy
简单地说super就是指父类 position!
不可能讲的更明白了吧
super(bx,by,bf);每个继承来的类的构造器在进行之前都要调用他们的基类的构造器,在这个新类里面生一个隐式的子对象,如果基类的构造器是不含有参数的话,那么编译器就会隐式的自动为你加入super()这么一条语句,而如果基类的构造器含有参数,就比如你的这个例子,就需要你显式的写入对基类的构造器的调用,也就是super(sx,sy);super(bx,by,bf);这两句代码,他们的意思就是说我要调用基类(超类)的构造器,super的英文单词本身也就含有这层含意。而super后面的括号里面的参数则是与基类的构造器的参数是一一对应的。
super(bx,by,bf);
这个是调用超类的构造方法,super(sx,sy);对应的是class position的构造方法,super(bx,by,bf)对应的是class position的构造方法。
super(bx,by,bf);box类调用他的父类spot类的构造函数
由于spot类继承了他的父类position类的两个属性,所以box类就可以继承包括他父类的自己的一个属性在内的三个属性。
同一个类中后面的构造函数调用前面的构造函数也可以使用super()