A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张yy 中级黑马   /  2013-6-10 13:07  /  1409 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
成员变量的继承和隐藏
下面的三个程序说明从点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。子类执行自己的方法时,操作的是子类的变量,子类
执行父类的方法时,操作的是父类的变量。
*/

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马