1.定义:就是一种规范。
2.是一种数据类型
3.访问权限都是public
4.关键字:interface
5.只能包含常量和抽象方法(所有数据默认都是常量,所有方法默认都是抽象方法)
public interface aaaa {
//int a;//编译错误,默认为public static final,常量,常量必须声明的同时初始化
int A=5;
//void show(){};//编译错误,默认public abstract,抽象类不能有方法体
void show();
public abstract void show1();
}
6.接口不能被实例化(即不能被new())
public interface aaaa {
//int a;//编译错误,默认为public static final,常量,常量必须声明的同时初始化
int A=5;
//void show(){};//编译错误,默认public abstract,抽象类不能有方法体
void show();
public abstract void show1();
}
class bbb implements aaaa{
//aaaa b=new aaa();//编译错误,不能初始化接口
@Override
public void show() {
}
@Override
public void show1() {
}
}
7.接口是需要被实现的,实现类必须重写所有抽象类
因为接口中的方法为抽象方法,结合之前继承理解,实现接口就要重写接口中的从抽象方法
8.一个类可以实现多个接口,用逗号分割,若一个类既有继承又有实现,要先继承后实现
助解:亲爹优先,干爹随后
9.接口可以继承接口
只要类型相同可以进行继承,类能继承类,接口能继承接口,但类和接口是两种,所以类只能实现接口,但不能继承
10.可以向上造型
package ttt;
/**
* @author
* @ 2022-07-19 14:48
*/
public interface aaaa {
//int a;//编译错误,默认为public static final,常量,常量必须声明的同时初始化
int A=5;
//void show(){};//编译错误,默认public abstract,抽象类不能有方法体
void show();
public abstract void show1();
}
class bbb implements aaaa{
//aaaa b=new aaa();//编译错误,不能初始化接口
// void show() {}//编译错误,实现类重写的方法权限要大于等于接口中类的权限,此刻为默认权限要小于接口中的public所以错误
@Override
public void show() {
}
@Override
public void show1() {
}
public static void main(String[] args) {
aaaa a=new bbb();//向上造型
}
}
11.接口是需要被实现的,必须重写所有的抽象方法
12.实现类重写方法权限要大于等于接口中方法的权限
public interface aaaa {
//int a;//编译错误,默认为public static final,常量,常量必须声明的同时初始化
int A=5;
//void show(){};//编译错误,默认public abstract,抽象类不能有方法体
void show();
public abstract void show1();
}
class bbb implements aaaa{
//aaaa b=new aaa();//编译错误,不能初始化接口
// void show() {}//编译错误,实现类重写的方法权限要大于等于接口中类的权限,此刻为默认权限要小于接口中的public所以错误