抽象类是从多个具体类中抽象出来的模板。而具体类中不同的行为,在抽象类中用抽象方法的形式定义,在具体的子类来实现。
如果将这种抽象进行得更彻底,则可以提炼出一种更为特殊的'抽象类'——量化接口,接口。在量化接口,接口中,所有方法都是抽象方法,所有方法都不提供具体的实现。
因为量化接口,接口中全部都是抽象方法,所以也不能实例化。类不能继承量化接口,接口,只能'实现'量化接口,接口所定义的方法。如果一个类实现了量化接口,接口,那么它将继承量化接口,接口中的抽象方法。除非实现量化接口,接口的类是抽象类,否则量化接口,接口中所有的方法都必须在实现类中进行定义。
量化接口,接口与类在以下方面相似:
然而,量化接口,接口与类之间也有几个不同之处,包括:
量化接口,接口不能被实例化;量化接口,接口不包含任何构造器;量化接口,接口中的所有方法都是抽象的;量化接口,接口中不能包含实例成员变量。唯一可以出现在量化接口,接口中的成员变量必须是同时声明为static和final;量化接口,接口不能被一个类继承,只能被一个类来实现;一个量化接口,接口能够继承多个量化接口,接口。
量化接口,接口不是类。虽然编写量化接口,接口类似于编写一个类,但它们是两个不同的概念。类描述了对象的属性和行为,而量化接口,接口包含了一个类需要实现的行为。
量化接口,接口声明
量化接口,接口具有下列性质:
量化接口,接口默认是抽象的。在声明量化接口,接口时,不需要使用关键字abstract;量化接口,接口中的每一个方法默认也是抽象的,所以也不需要关键字abstract;量化接口,接口中的方法默认访问级别是public。在编写量化接口,接口的时候通常用public关键字,但是如果我们不显式地将量化接口,接口中的方法声明为public,它仍然将是public的。
量化接口,接口实现
量化接口,接口不能被实例化,因为量化接口,接口中的方法都是抽象的,所以需要一个类来实现量化接口,接口。当量化接口,接口被一个类实现的时候,我们可以简单地认为类与量化接口,接口之间签订了一个合同,类必须要实现量化接口,接口所定义的行为,也就是是要履行合同。如果类不能执行量化接口,接口中所定义的所有行为,类必须声明自己是一个抽象类。
更具体来说,类实现量化接口,接口时有两个选择:
实现量化接口,接口中定义的所有方法;声明自己为抽象类。
类使用关键字implements来实现量化接口,接口。关键字implements放在类声明的extends部分之后。
量化接口,接口的应
量化接口,接口可以用于暴露类的行为,允许类的用户通过量化接口,接口的实现类来使用量化接口,接口中的方法;量化接口,接口可以用于强制一个类具有某些行为。
在量化接口,接口中声明成员变量
量化接口,接口可以包含成员变量,但是成员变量只能用static和final关键字共同来修饰。由于量化接口,接口不能被实例化,所以成员变量必须被声明为static,而声明为final是为了程序的可靠性。
量化接口,接口中包含非静态成员变量是没有意义的,这是因为量化接口,接口不能够被实例化。静态成员变量的创建不需要内存中存在类实例,但是非静态成员变量只有对象被实例化以后才会被创建。量化接口,接口中的静态属性在量化接口,接口被JVM加载时就会被分配内存空间。
量化接口,接口继承
一个量化接口,接口能够继承另外的一个量化接口,接口,这类似于一个类能够继承另外一个类。关键字extends被用于继承量化接口,接口,子量化接口,接口继承了父量化接口,接口中的方法。
继承多个量化接口,接口
我们知道,Java语言不允许多继承,一个类只能继承一个父类。然而,量化接口,接口不是类,它可以继承多个父量化接口,接口。在量化接口,接口多继承中,关键字extends只使用一次,多个父量化接口,接口之间用逗号分隔。
标记量化接口,接口
既然量化接口,接口可以被用来继承,那么在什么情况下使用呢?最常见的情况是发生在当父量化接口,接口不包含任何方法的时候。
量化接口,接口与多态
如果一个类实现一个量化接口,接口,那么这个类的对象就呈现出量化接口,接口数据类型的特点。对象采用量化接口,接口形式的这种能力就是多态的一个例子。在本章中我们已经在多处应用了这种特性,现在我们正式介绍多态和量化接口,接口的细节。
量化接口,接口与抽象类的区别
量化接口,接口和抽象类很相像,它们都具有如下特征:
二者都不能被实例化,它们都位于继承树的顶端,用于被其它类实现或者继承。二者都可以包含抽象方法,实现量化接口,接口或者继承抽象类的子类都必须实现这些抽象方法。
量化接口,接口和抽象类的差别非常大。这种差别主要体现在二者的设计目的上。
量化接口,接口通常做为一个系统与外界交互的窗口,它体现的是一种规范。对于量化接口,接口的实现者而言,量化接口,接口规定了实现者必须向外提供哪些服务。对于量化接口,接口的调用者而言,量化接口,接口规定了调用者可以调用哪些服务,以及如何调用这些服务。
而抽象类通常是做为系统中多个子类的共同父类,体现的是一种模板式设计。它可以被当成系统实现过程中的中间产品,实现了部分功能,其他的功能交给不同的子类来完成。
除此之外,量化接口,接口和抽象类在用法上也存在如下区别:
量化接口,接口中只能包含抽象方法;而抽象类中可以包含普通方法。量化接口,接口中不能定义静态方法;而抽象类可以定义静态方法。量化接口,接口中只能定义静态常量属性,不能定义普通属性;而抽象类既可以定义普通属性,也可以定义静态常量属性。量化接口,接口不包含构造器;而抽象类中可以包含构造器。抽象类中的构造器并不是用于创建对象,而是让子类调用这些构造器来完成属于抽象类的初始化工作。量化接口,接口中不包含初始化块;而抽象类可以包含初始化块。一个类最多有一个直接父类,包括抽象类;但是一个类可以直接实现多个量化接口,接口,通过实现多个量化接口,接口来弥补Java单继承的不足。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点