黑马程序员技术交流社区

标题: java成员变量的继承和隐藏 [打印本页]

作者: 张yy    时间: 2013-6-10 13:07
标题: java成员变量的继承和隐藏
/*
成员变量的继承和隐藏
下面的三个程序说明从点Point类扩展到线Line类和圆Circle类的方法
*/


public 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;}
public int getX(){return x;}
public int gety(){return y;}
}


public class Line extends Point
{
protected int x,y,endX,endY;
Line(int x1,int y1,int x2,int y2){setLine(x1,y1,x2,y2);} //构造方法
public void setLine(int x1,int y1,int x2,int y2){x=x1;y=y1;endX=x2;endY=y2;}
public int getX(){return X;}
public int getY(){return Y;}
public int getendX(){return endX;}
public int getendY(){return endY;}
public double length(){
return Math.sqrt((endX-x)*(endX-x) + (endY-y)*(endY-y));
}
}


public class Circle extends Point
{
protected int radius;
Circle(int a,int b,int r){
super(a,b);
setRadius(r);
} //构造方法
public void setRadius(int r){radius=r;}
public int getRadius(){return radius;}
public double area(){return 3.14159*radius*radius;}
}


/*
从上面三个类可以看出,子类Circle继承了父类Point中的成员变量x和y,也继承了
setPoint、getX、getY方法,添加了自己的成员变量radius,成员方法setRadius、getRadius
和area。在构造方法Circle中,调用了父类的构造方法super(a,b)设定圆心坐标(父类的构造方法
必须处于第一行)


成员变量的隐藏是指子类重新定义了父类中的同名变量,如子类Line重新定义了x为x1,y为y1,
隐藏了父类Point中的两个成员变量x和y。子类执行自己的方法时,操作的是子类的变量,子类
执行父类的方法时,操作的是父类的变量。
*/

作者: 许庭洲    时间: 2013-6-11 08:56
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2