接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法,本文主要讲解接口,内部类的内容将在下篇博文中进行说明 抽象类 包含抽象方法的类必须定义为抽象类,但抽象类不一定有抽象方法,不能产生抽象类的对象 使用abtract关键字声明抽象类和抽象方法 若我们希望阻止某个类产生任何对象,也可以把它声明成一个抽象类 接口 如何实现 使用interface关键字代替class关键字来产生一个完全抽象的类(是接口而不是抽象类) 特征 #访问权限 可以拥有public,或者默认的包访问这两种可视性 #域: 这些域隐式地是public,static和final的 域不能为空,但是可以被非常量表达式初始化 e.g. public interface RandVals{ Random RAND = new Random(); int RANDOM_INT = RAND.nextInt(10); long RANDOM_LONG = RAND.nextLong()*10; ... } //这些域不是接口的一部分,它们的值被储存在该接口的静态储存区域内 #方法声明: 访问权限: 方法声明隐式地是public的 当实现一个接口时,在接口被定义的方法必须显式地定义为public的 返回值类型: 返回类型可以是原类型也可以是协变类型 参数类型: 参数类型不可变,参数名可变 可在方法体中用强制类型转换将接收到的参数转换成更合理的类型 #实现一个接口 在类名后使用implements关键字 #用途 允许实现接口的类向上转型为接口,由于一个类可以实现多个接口,这变相的使一个类可以向上转型为多种基类型(包括接口,这带来了极大的灵活性),实现某种类似多重继承的变种(Java不允许直接实现多重继承详见 谈谈我对复用类的理解 ) 另一个用途...