一. 接口
-
概念
接口是 Java 编程语言中一种援用类型,是办法的汇合,接口通常以 interface 来申明,接口的外部次要就是封装了办法,蕴含形象办法,默认办法和静态方法,公有办法。
-
接口的申明
public interface 接口名称 {
// 形象办法
// 默认办法
// 静态方法
// 公有办法
} -
接口的定义方法与实现
1. 形象办法
【应用abstract,子类必须实现, 定义接口可省略 public 与 abstract】
接口:public interface 名{void eat();
void sleep();}
实现类:public class dowu implements 名{
@Override
public void eat() {System.out.println("吃货色");
}
@Override
public void sleep() {System.out.println("早晨睡");
}
}
测试类:public class Dom01 {public static void main(String[] args) {dowu a = new dowu();
a.eat();
a.sleep();}
}
2. 默认办法
默认:【应用 default,继承重写,二选一,只能通过实现类的对象来调用,定义接口可省略 public】
接口:public interface 名{default void fly(){System.out.println("天上飞");
}
}
实现:public class dowu implements 名{
@Override
public void fly() {System.out.println("无拘无束的飞");
}
}
重写默认办法:接口:public interface 名 {default void fly(){System.out.println("天上飞");
}
}
实现:public class dowu implements 名{
@Override
public void fly() {System.out.println("无拘无束的飞");
}
}
**(测试如上)**
3. 静态方法
动态:【应用 static,只能接口名调用,接口名. 静态方法,定义接口可省略 public】
接口:public interface 名{static void run(){System.out.println("跑起来~~~");
}
}
实现:不可重写
测试类:public class Dom01{public static void main(String[] args) {//Animal.run(); //【谬误】无奈继承办法, 也无奈调用
LiveAble.run();
}
}
4. 公有办法和公有静态方法
公有办法:【应用 private,只能在本地默认办法中调用,不能在静态方法中应用】
公有静态方法:【本地默认办法和静态方法能够调用】
public interface 名{default void func(){func1();
func2();
func3();}【如果一个接口中有多个默认办法,并且办法中有反复的
内容,那么能够抽取进去,封装到公有办法中,供默认
办法 去调用。】private void func1(){System.out.println("跑起来~~~");
}
private void func2(){System.out.println("跑起来~~~");
}
private static void func3(){System.out.println("奥利给~~~");
}
}
-
接口的多实现
一个类是能够实现多个接口的,这叫做接口的 多实现。并且,一个类能继承一个父类,同时实现多个接口。extends 关键字只须要应用一次,在其后跟着实现接口。如下:
class 类名 extends 父类名 implements 接口名 1, 接口名2… {
// 重写接口中形象办法【必须】
// 重写接口中默认办法【不重名时可选】
}1. 形象办法
必须重写所有形象办法,有重名,只需重写一次。
接口:interface A {public abstract void showA(); public abstract void show();} interface B {public abstract void showB(); public abstract void show();}
实现:
public class C implements A,B{ @Override public void showA() {System.out.println("showA"); } @Override public void showB() {System.out.println("showB"); } @Override public void show() {System.out.println("show"); } }
2. 默认办法
如果默认办法有重名的,必须重写。
接口:interface A {public default void methodA(){} public default void method(){} } interface B {public default void methodB(){} public default void method(){} }
实现:
public class C mplements A,B{ @Override public void method() {System.out.println("method"); } }
3. 静态方法
是只能通过各自接口名拜访静态方法。
-
多继承
类不能够多继承,但接口容许多继承,用 extends 屁股前面跟着继承接口。
格局:
public interface Hockey extends KPL,NBA
舒适提醒
父接口中的默认办法有重名,子接口须要重写一次哦。