java不支持多继承,一个类只能有一个父类(单继承性使得java简单,易于管理----单继承性是怎样使java简单易于管理的?)。弥补java单继承性带来的不足(什么不足?),java使用了接口,一个类可以实现多个接口(java的单继承性和接口与C++的多继承相比有什么优点和缺点?)。
接下来我们看看接口的规定:
1,接口通过关键字interface来声明。(如果关键字interface 前面加上public 表示该接口可以被任何类使用。如果不加则表示该接口只能被同一个包下的类使用)
2,接口体包括常量定义和方法定义。(注意:在接口中的变量必须被初始化----这一点与类的声明是不同的,并且在实现该接口的类中是不可以改变接口中的变量的)
3,接口中的方法默认是public和abstract的。
4,如果父类实现了某一接口,那么子类也实现了该接口。子类不必再显示的用implements关键字声明自己实现了某个接口。
5,一个接口可以被另一个接口继承。(由于接口中的方法和常量都是public的,所以子接口继承付父接口的所有常量和方法s)
问题:
1,通过上面的规定可以看出:一个接口中的常量只能用public static final这三个关键字中的几个来修饰,方法只能用public abstract中的几个关键字来修饰。还有,接口中的变量为什么不能是private, protected类型的变量呢?仔细一想其实这也很好理解,若把implements 看做特殊的 extends,假设接口中的变量时private类型的,若一个类实现(implements)了这个接口,则该类是不能继承private类型的数据成员的。在接口中的方法只能有声明,不能有任何其他操作,那接口中的变量没有被进行任何操作,也就是说该变量没有任何意义。那为什么不能用protected来修饰呢?