19.接口
接口:初期理解,可以认为是一个特殊的抽象类
当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示
class用于定义类,interface用于定义接口
接口定义时,格式特点:
1.接口中常见定义:常量,抽象方法
2.接口中的成员都有固定修饰符。
常量:(public statci final)
方法:(public abstract) 可以不写,写全便于查看
记住:接口中的成员都是public
接口:是不可以创建对象的,因为有抽象方法。需要被子类实现。
子类对接口中的抽象方法全都覆盖后,才可以实例化。否则子类是一个抽象类。
接口可以被类多实现,也是对多继承不支持的转换形式,Java支持多实现。
public class Interface_09 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
System.out.println(t.NUM);
System.out.println(Test.NUM);
System.out.println(Inter.NUM);
}
}
interface Inter{
public static final int NUM=3;
public abstract void show();
}
interface InterA{
public abstract void method();
}
class Demo1{
public void function(){
}
}
class Test extends Demo1 implements Inter,InterA{ //多实现
@Override
public void show() {
// TODO Auto-generated method stub
}
@Override
public void method() {
// TODO Auto-generated method stub
}
}
//接口与接口之间是继承关系(层级继承)
interface A{
void methodA();
}
interface B extends A{
void methodB();
}
interface C extends B{
void methodC();
}
class D implements C{
@Override
public void methodB() {
// TODO Auto-generated method stub
}
@Override
public void methodA() {
// TODO Auto-generated method stub
}
@Override
public void methodC() {
// TODO Auto-generated method stub
}
}
以下情况支持多继承
interface AA{
void getA();
}
interface BB{
void getB();
}
interface CC extends AA,BB{ //如果BB没有继承AA,CC可以多继承
void getA();
void getB();
}
以下情况不支持多继承
不支持多继承的原因:父类中方法有重复(返回值类型出现问题时),子类调用时出现问题。
接口不出现问题,多实现没有方法体,由子类任意定义。
interface AA{
void getA();
int show();
}
interface BB{
void getB();
boolean show();
}
interface CC extends AA,BB{ //如果BB没有继承AA,CC可以多继承
void getA();
void getB();
}

浙公网安备 33010602011771号