接口
1.是一个标准、规范–遵守了这个标准,就能干某件事
2. 由interface定义
3.只能包含常量和抽象方法
4.接口不能被实例化
5.接口是需要被实现/继承的,实现类/子类:必须重写接口中的所有抽象方法
6.一个类可以实现多个接口,用逗号分隔—若又继承又实现时,先继承extends后实现implements
7.接口可以继承接口 类对类–继承 接口对接口–继承 类和接口–实现
- 演示接口的基础语法
interface Inter1{
public static final double PI=3.14159;//常量
public abstract void show();//抽象方法
int NUM=250;//默认public static final
void say();//默认public abstract
//int count; //编译错误,常量必须声明同时初始化
//void sayHi(){}//编译错误,接口中方法默认都是抽象的
}
- 演示接口的实现
interface Inter2{//有两个抽象方法。接口中的方法默认public abstract
void show();
void say();
}
class Coo implements Inter2{//实现接口的时候必须重写所有的抽象方法。
public void show(){}//必须加public,接口中的方法默认加了public,所以实现类必须有public
public void say(){}
}
- 演示又继承类又实现接口
interface Inter3{//两个接口
void show();
}
interface Inter4{
void say();
}
abstract class Doo{//一个抽象类
abstract void test();
}
class Eoo extends Doo implements Inter3,Inter4{
public void show(){}
public void say(){}
void test(){}//这里可以不加public 因为Doo方法的权限是默认,这里也可以是默认。也可以加public,
//因为子类权限是大于等于父类,public大于等于默认
}
- 接口间的继承
interface Inter5{
void show();
}
interface Inter6 extends Inter5{//用extends[类对类-继承,接口对接口-继承,类和接口-实现]
void say();
}
class Foo implements Inter6{
public void say(){}
public void show(){}
}
main方法
public static void main(String[] args) {
//Inter5 o1=new Inter5(); //编译错误,接口不能被实例化
Inter6 o2=new Foo();//向上造型
Inter5 o3=new Foo();//向上造型
}