/**
* 作者: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
*/