java接口
抽象类主要是对类本身进行抽
接口是对方法进行抽象
接口以interface来声明,一个类通过继承接口的方式从而实现继承接口的抽象方法
1 创建接口:
interface A{ int age = 10; void fun1();//不能有具体的实现 } interface B{ int b = 100; void fun2(); }
接口中的方法不能是普通方法,不能有具体的实现
2 可以实现多个接口
class C implements A,B{ @Override public void fun1() { System.out.println("A.fun1"); } @Override public void fun2() { System.out.println("B.fun2"); } }
3 接口不能通过new来实例化(如A a = new A();但可以通过向上转型创建出a b对象
public static void main(String[] args) { C c = new C();//派生类 c.fun1(); A a = c;//向上转型 a.fun1(); B b = c; b.fun2(); }
4 接口的继承
//接口的继承 /*interface Mobike{ public void scan(); } interface Ofo{ public void hand(); } abstract class Bike{ public abstract void fun1(); } class FlyingDove extends Bike implements Mobike,Ofo{ @Override public void hand() { System.out.println("Ofo.hand()"); } @Override public void scan() { System.out.println("Mobike.scan()"); } @Override public void fun1() { System.out.println("Bike.fun1"); } }
5 接口与接口之间也可以继承
interface A{ public void fun1(); } interface B{ void fun2(); } //接口和接口之间可以继承 interface C extends A,B{ public void fun3(); } class X implements C{ @Override public void fun1() { // TODO Auto-generated method stub } @Override public void fun2() { // TODO Auto-generated method stub } @Override public void fun3() { // TODO Auto-generated method stub } }
接口的简单例子:报警门
interface Alarm{ public void alarm(); } abstract class Door{ public abstract void open(); public abstract void close(); } class AlarmDoor extends Door implements Alarm{ @Override public void alarm() { // TODO Auto-generated method stub } @Override public void open() { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } }
接口和抽象类的区别:
接口和抽象类的区别::: * 接口可以被实现多个(继承--解决了Java的单继承的问题) 抽象类只能被继承一个 * 抽象类可以拥有非抽象方法 接口内都是抽象方法 * 接口的数据成员变量都是public static final 成员方法为public abstract * 接口是对行为的一种抽象 抽象类本身是对类整体的抽象
浙公网安备 33010602011771号