Java基础知识17:接口的使用

/**
 * 作者:hiyo585
 * 公司:hiyo design studios
 * 接口的定义
 * 全局常量
 * 公共抽象方法
 * interface 接口名称 {
 *     全局常量//public static final
 *     公共抽象方法//必须为public访问权限
 * }
 *
 * interface A {
 *     public static final String name = "HIYO DESIGN" ;
 *     //全局常量
 *     public abstract String getInfo() ;
 *     //公共抽象方法
 * }
 *
 *或者写成
 *interface A {
 *     String name = "HIYO DESIGN" ;
 *     String getInfo() ;
 *}
 * 图形表示方法
 * -----------------------------------------------
 * |   O-             A                           |
 * -----------------------------------------------
 * |  + NAME       :       String ="HIYO DESIGN   |
 * -----------------------------------------------
 * | + getInfo     :       String                 |
 * -----------------------------------------------
 *
 * 接口的实现
 * class 子类  implements 接口1,接口2... {
 *     ...
 * }
 * 子类可以实现多个接口,这样通过接口Java实现了多继承的
 *
 * 子类可以同时实现接口和继承抽象类
 * class 子类 extends 抽象类 implements 接口A,接口B{}
 *
 * 抽象类也可以实现接口,一个抽象类也可实现多个接口
 *
 * 接口之间也可继承,并且一个接口可以继承自多个接口。
 * interface 子接口 extends 父接口A,父接口B,。。。{}
 */
package com.hiyo.HighClass;

interface InterA {//接口中为全局常量static final,和公共抽象方法
    public static final String NAME = "hiyo585";
    public abstract void print() ;
    public abstract String getInfo() ;
}

interface InterB {
    public abstract void say() ;
}
interface InterC {
    public abstract void speak() ;
}

//一个接口继承子多个接口。
interface InterD extends InterB,InterC {
    public abstract void doThings() ;
}
//定义抽象类
abstract class AbsClass {
    public abstract void sayHello() ;
}
//子类实现接口
class InterExtend implements InterA,InterB {
    //多继承,子类实现多个接口
    //子类必须将接口中的所有抽象方法进行覆写
    public void print(){
        System.out.println("子类覆写接口中的抽象方法print");
    }
    public String getInfo() {
        return "InterA-->getInfo-InterExtend";
    }
    public void say() {
        System.out.println("InterB--->say");
    }
}

//抽象类也可实现接口,可以多个接口
abstract class AbstrCla implements InterB,InterC {
    public abstract void see() ;
}

//子类继承抽象类并且实现接口
class InterClassExt extends AbsClass implements InterA,InterB {
    public void print() {
        System.out.println("InterClassExt--->print");
    }
    public String getInfo() {
        return "InterClassExt---->getInfo()";
    }
    public void say() {
        System.out.println("InterClassExt---->say") ;
    }
    public void sayHello() {
        System.out.println("InterClassExt-->HelloWorld");
    }
}

//类继承自抽象类
class FinalClass extends AbstrCla {
    public void say() {
        System.out.println("FinalClass---->say") ;
    }
    public void speak() {
        System.out.println("FinalClass---->speak");
    }
    public void see() {
        System.out.println("FinalClass------see") ;
    }
}

public class InterfaceDemo01 {
    public static void main(String[] args) {
        InterExtend ie = new InterExtend() ;
        ie.print();
        System.out.println(ie.getInfo());
        ie.say();
        InterClassExt ice = new InterClassExt();
        ice.print();
        ice.say();
        ice.sayHello();
        System.out.println(ice.getInfo());
        FinalClass fc = new FinalClass() ;
        fc.say();
        fc.see();
        fc.speak();
    }
}

/*
子类覆写接口中的抽象方法print
InterA-->getInfo-InterExtend
InterB--->say
InterClassExt--->print
InterClassExt---->say
InterClassExt-->HelloWorld
InterClassExt---->getInfo()
FinalClass---->say
FinalClass------see
FinalClass---->speak
 */

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值