java里面不允许多重继承,所以如果要实现多个类的功能,则可以通过实现多个接口。java接口和java抽象类代表的就是抽象类型。即接口是特殊的抽象类。接口中的方法必须都是抽象方法,而普通的抽象类可以有普通的方法。
OOP是面向对象的编程,如果要提高程序的复用性,增加程序的可维护性,可扩展性,就必须是面向接口编程,面向抽象的编程。
特点:
1.接口中的方法都是抽象的方法
2.通过interface关键字创建接口
3.通过implements关键字让子类来实现
4.接口突破了java的单继承的局限性
5.接口和类之间可以多实现,接口和接口之间可以多继承
6.接口可以理解成是一种开发规范,通过使用接口可以可以提高程序的功能扩展,降低了耦合性的问题
//测试接口
public class Test3_Interface {
public static void main(String[] args) {
//创建多态对象测试
A a =new B();
a.drink();
a.eat();
}
}
//定义接口
interface A{
//定义抽象方法
abstract public void eat();
abstract public void drink();
}
//定义子类
class B implements A{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("吃肉");
}
@Override
public void drink() {
// TODO Auto-generated method stub
System.out.println("喝酒");
}
}
接口里没有成员变量,都是常量 所以,定义一个变量没有写修饰符时 默认会加上:
public static final
1.类和类
是继承关系,单继承 class A extends B{ }
没有强制要求重写父类中的方法
2.类和接口
(1)单实现(是实现关系) class A implements B{ }
强制要求A重写B接口中的所有抽象方法
(2)多实现(是实现关系) class A implements B,C{ }
强制要求A重写B和C中所有的抽象方法
3.接口和接口
是继承关系 interface A extends B{ }
没有强制要求重写接口中的方法,继承A之后就拥有了B的所有方法
4.继承的同时多实现
class A extends B implements C,D{ }
强制要求A把C和D接口里的所有方法重写
没有强制要求A把父类B的方法重写
访问控制符