一、今日学习内容:
第六章 接口浅议的前半部分:
1、接口:接口是java语言中为解决无法实现多继承而提供的一种解决方案。接口中没有实际的方法实现,只定义了一些空壳,一个类可以通过实现接口来实现多重继承关系。
接口中的方法都是抽象类,并没有方法具体实现。接口中的方法,必须由接口的实现类来实现。
2、接口的声明: 使用interface来定义一一个接口。接口定义同类的定义类似,也分为接口的声明和接口体,其中,接口体由常量定义和方法定义两部分组成。定义接口的基本格 式 如下。
[修饰符] interface 接口名[extends 父接口名列表]
{
[public] [static] [final]常量;
[public] [abstract]方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java 标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。
3、使用接口
(1)接口的使用:接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements。
[修饰符] class <类名> [extends父类名] [implements 接口列表] { }
(2)接口的特征归纳
Java接口中的成员变量默认都是public、static、final 类型的,而对于public、staticfinal其实都可以省略,接口中的成员变量为常量,并且建议全部使用大写, 单词之间用" "分隔;Java 接口中的方法默认都是public、abstract 类型的,并且public和abstract 是可以省略的,接口中的方法没有方法体,不能被实例化。
(3) Java 接口中只能包含public、static、 final 类型的成员变量和public、abstract 类型的成员方法。
(4)接口中没有构造方法,不能被实例化。
(5)一个接口不能实现(implements)另一个接口,但它可以继承多个其他的接口。
(6) Java接口必须通过类来实现它的实现类来实现抽象方法。
(7)当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则,这个类必须声明为抽象的。
(8)不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例。
public class B implements A{ }
A a=new B();//引用变量a被定义为A接口类型,引用了B实例
A a= new A();//错误,接口不允许实例化
(9)一个类只能继承一个直接的父类,但可以实现多个接口,间接地实现了多继承。
public class A extends B implements C,D{...} //B 为class,C,D为interface
二、遇到的问题:
无大问题。
三、计划:
明天继续学习第六章的知识,继续阅读《大道至简》。