Java学习笔记 继承与抽象类:接口的继承

回顾

在这里插入图片描述

1.接口继承的概念

在这里插入图片描述

2.接口继承规则

规则1:与类继承不同
可以有一个以上的父接口,用逗号隔开,形成父接口列表
规则2:有与父接口同名的常量或相同的方法,则父接口中的常量被隐藏,方法被覆盖

3.接口继承举例

interface interfaceA{
    int PROP_A = 5;//public static final int
    void testA();//public abstract void
}
interface interfaceB{
    int PROP_B = 6;
    void testB();
}
interface interfaceC extends interfaceA,interfaceB{
    int PROP_C = 7;
    void testC();
}
public class interfaceinherit {
    public static void main(String[] args) {
        System.out.println(interfaceC.PROP_A);
        //因为接口的常量都是默认public static final修饰的
        //都是静态常量所以这里接口名.常量名是合法的
        System.out.println(interfaceC.PROP_B);
        System.out.println(interfaceC.PROP_C);
    }
}

继承了父接口中的常量
注意接口可以看成特殊的类,一个java源程序中只能有一个公共接口(public接口的数量:0~1个)
在一个java源程序中,不管有多少个接口,多少类,只能有一个被public所修饰
这里的接口都不可以声明为public(就如上代码只有主类是public其他类都不能用public)
在这里插入图片描述
在编译时,如上图接口和类都被编译成单独的字节码文件,所以可以看出接口和类是等价的

编程训练

interface Face1
{   double PI=3.14;
    abstract double area( ); }
interface Face2
{  abstract void setColor(String c); }
interface Face3 【代码1//继承Face1和Face2接口
{【代码2}//定义无返回值的抽象方法volume()
public class Cylinder   【代码3//实现Face3接口
{
  private double radius;
  private int height;
  protected String color;
  public Cylinder(double r, int h)
  {    radius=r;    height=h;  }
【代码4//实现area()方法,求解圆柱底面积
【代码5//实现setColor()方法,输出颜色
【代码6//实现volume()方法,求解并输出圆柱体积
  public static void main(String[] args)
  {     Cylinder volu=new Cylinder(3.0,2);
         volu.setColor("红色");
         volu.volume(); 
  }
}

答案.

interface Face1 {
    double PI = 3.14;
    abstract double area();
}

interface Face2 {
    abstract void setColor(String c);
}

interface Face3 extends Face1, Face2//继承Face1和Face2接口
{
    abstract void volume();
}//定义无返回值的抽象方法volume()

public class Cylinder implements Face3{//实现Face3接口
    private double radius;
    private int height;
    protected String color;

    public Cylinder(double r, int h) {
        radius = r;
        height = h;
    }

    public double area() {
        return radius * radius * PI;
    }//实现area()方法,求解圆柱底面积

    public void setColor(String color) {
        System.out.println("颜色是:" + color);
    }//实现setColor()方法,输出颜色

    public void volume() {
        System.out.println("体积:" + area() * height);
    }// 实现volume()方法,求解并输出圆柱体积

    public static void main(String[] args) {
        Cylinder volu = new Cylinder(3.0, 2);
        volu.setColor("红色");
        volu.volume();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值