关于对象的思考(二)

一、抽象类和常规类很像,可是不能使用new操做符建立它的实例。一个包含抽象方法的类必须声明为抽象类。抽象类的构造方法定义为protected,由于它只被子类使用。建立一个具体子类的实例时,它的父类的构造方法被调用以初始化父类中定义的数据域。spa

二、若是抽象父类的子类不能实现全部的抽象方法,那么子类也必须定义为抽象的。也就是说,在抽象类扩展的非抽象子类中,必须实现全部的抽象方法。还要注意到,抽象方法是非静态的。code

三、包含抽象对象的类必须是抽象的。可是能够定义一个不包含抽象方法的抽象类。即便子类的父类是具体的,这个子类也能够是抽象的。对象

四、Java只容许为类的扩展作单一继承,可是容许使用接口作多重扩展。例如,blog

public class NewClass extends BaseClass
        implements Interface1,...,InterfaceN{
    ...
}

接口能够扩展其余接口而不是类。一个类能够扩展它的父类同时实现多个接口。继承

五、若是一个类实现了一个接口,那么这个接口就相似于该类的一个父类。能够将接口看成一种数据类型使用,将接口类型的变量转换为它的子类。接口

六、抽象类和接口都是用来明确多个对象的共同特征的。那么该如何肯定在什么状况下使用接口什么状况下使用类呢?通常来讲,详细描述父子关系的is-a关系应该用类建模。若is-a关系也成类属关系,它代表对象拥有某种属性。弱is-a关系能够用接口来建模。class

相关文章
相关标签/搜索