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()));
  }
}

代码运行结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值