标签:Ball Java 继承 子类 学习 Circle 父类 super public
子类与父类
由继承得到的类称为子类或派生类,被继承的类称为父类或超类
关于子类的继承性
子类继承父类后的成员变量和成员方法的访问权限保持不变
(1)如果子类和父类在同一包中,则子类能继承父类中除private修饰符修饰的成员变量和成员方法;
(2)不在同一包中,子类只能继承父类中用protected和public修饰符修饰的成员变量和成员方法
关键字super
super是Java语言的关键字,用来表示父类对象。关键字super有两种用法:
1.子类使用super调用父类的构造方法
2.子类使用super调用父类中被隐藏的成员变量和被覆盖的方法
import java.util.Scanner;
class Shape{
Shape(){
System.out.println("Constructing Shape");
}
public double getArea(){
return 0.0;
}
}
class Circle extends Shape{//Circle 继承 Shape
private double radius;
Circle(){
System.out.println("Constructing Circle");
}
public double getArea(){
return radius*radius*Math.PI;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
}
class Ball extends Circle{//Ball 继承 Circle
Ball(){
System.out.println("Constructing Ball");
}
public double getAreea(){
return super.getArea()*4;//用关键字super来调用父类中被覆盖的方法,也可以用来调用父类中被隐藏的成员变量
}
}
public class Test{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
double a = in.nextDouble();
Circle c = new Circle();
c.setRadius(a);
System.out.println("Circle's Area : "+String.format("%.2f" , c.getArea()));
Ball b = new Ball();//定义一个Ball对象
b.setRadius(a);//调用Ball父类Circle中的setRadius方法
System.out.println("Ball's surface : "+String.format("%.2f" , b.getArea()));
}
}
代码运行结果
标签:Ball,Java,继承,子类,学习,Circle,父类,super,public 来源: https://blog.csdn.net/AQACXHSH/article/details/115529895
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。