zoukankan      html  css  js  c++  java
  • 关于对象的思考(二)

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

    2、如果抽象父类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象的。也就是说,在抽象类扩展的非抽象子类中,必须实现所有的抽象方法。还要注意到,抽象方法是非静态的。

    3、包含抽象对象的类必须是抽象的。但是可以定义一个不包含抽象方法的抽象类。即使子类的父类是具体的,这个子类也可以是抽象的。

    4、Java只允许为类的扩展做单一继承,但是允许使用接口做多重扩展。例如,

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

    接口可以扩展其他接口而不是类。一个类可以扩展它的父类同时实现多个接口。

    5、如果一个类实现了一个接口,那么这个接口就类似于该类的一个父类。可以将接口当作一种数据类型使用,将接口类型的变量转换为它的子类。

    6、抽象类和接口都是用来明确多个对象的共同特征的。那么该如何确定在什么情况下使用接口什么情况下使用类呢?一般来说,详细描述父子关系的is-a关系应该用类建模。若is-a关系也成类属关系,它表明对象拥有某种属性。弱is-a关系可以用接口来建模。

  • 相关阅读:
    [蓝桥] 基础练习 数列排序(java)
    关不掉之以假乱真
    关不掉.vbs
    1.3内置数据类型
    1.2成员变量+类变量+static关键字
    1.1变量+命名规则
    Java 大数任意进制转换
    打印十字图
    c语言求最大公约数和最小公倍数
    核桃的数量
  • 原文地址:https://www.cnblogs.com/hwf-73/p/6017500.html
Copyright © 2011-2022 走看看