Java学习 继承
2021/4/8 20:55:46
本文主要是介绍Java学习 继承,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
子类与父类
由继承得到的类称为子类或派生类,被继承的类称为父类或超类
关于子类的继承性
子类继承父类后的成员变量和成员方法的访问权限保持不变
(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())); } }
代码运行结果
这篇关于Java学习 继承的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!