/*
this、super、super()的使用*/
class Point
{
protected int x,y;
Point(int a,int b){setPoint(a,b);} //构造方法
public void setPoint(int a,int b){x=a;y=b;}
}
class Line extends Point
{
protected int x,y; //隐藏了父类的x和y
Line(int a,int b){
super(a,b);
setLine(a,b);
}
public void setLine(int x,int y)
{
this.x = x + x; //子类的x
this.y = y + y; //子类的y
}
public double length()
{
int x1=super.x,y1=super.y,x2=this.x,y2=this.y;
return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
public String toString()
{
return "直线的起点:[" + super.x + "," + super.y + "] 直线的终点是:["
+ x + "," + y + "] 直线的长度是: " + this.length();
}
}
class Go
{
public static void main(String[] args)
{
Line L = new Line(50,50);
System.out.println(L.toString());
}
}
/*
this
在一个类中,this表示对当前类的引用,在使用类的成员时隐含this的引用,例如
Length和toString中对x和y的使用,虽然不是明确地写出,其实已经隐含其中了。
当一个类被实例化为一个对象后,this就是对象名的另一种表示,通过this可以顺利
地访问对象,凡在需要使用对象名的地方都可以用this来替代。
super
如果子类的变量隐藏了父类的变量,使用不加引用的变量一定是子类的变量,如果使用父类的变量,
就必须加上super引用。同样的道理,如果有方法覆盖的发生,调用父类的方法时也必须加上super引用。
*/