美文网首页Java
类的特征及抽象类内容

类的特征及抽象类内容

作者: Y_Jaaao | 来源:发表于2018-11-25 00:17 被阅读0次

一、类的三大特征

1.类的封装 package

  • 1.1封装:是面向对象编程的核心思想,封装的载体是类,且对象的行为和属性都分装在这个类中,类通常对客户隐藏细节。


    z1.PNG
    JD.png

2、类的继承 inherit(平板电脑继承于台式电脑)

继承的基本思想:基于某个父类的扩展,并制定一个新的子类,子类可以继承父类原有的属性和方法,也可以增加原父类不具备的属性和方法,或直接重写父类中的某些属性个方法。(平行四边形是特殊的四边形,若说平行四边形继承了四边形类,那么平行四边形类就保留在四边形类所有属性和方法的同时,还扩展了平行四边形类特有的属性和方法)

  • 2.1 extends关键字:在Java中,让一个类继承另一个类需要使用extends关键字。


    z1.PNG
  • 注意:Java中只支持单继承,即一个类只可以有一个父类。
  • 2.2 方法的重写:当父类的某个方法不适用于子类时,就需要子类中重写父类的这个方法。
    --- 重写的实现:在子类中将父类的成员方法名称保留,重新编写父类成员方法的实现内容,更改成员方法的存储权限,或是修改成员方法返回值类型。(重构:当子类和父类的成员方法返回值、方法名称、参数类型、个数完全相同,唯一不同的是方法实现内容)
    --- 注意:重写父类方法时,修改方法的修饰权限只能从小范围到大范围改变,不能降低方法的修饰权限范围,如,父类中的dosomething()方法的修饰权限为protected,继承后子类中的方法dosomething()的修饰权限为public,不能修饰为private,否则重写关系就是错误的。(public>protected>private)
    --- super关键字:在子类的方法中实现父类原有方法


    z1.PNG
  • 2.3 所有类的父类——Object类:在Object类中主要包括clone()、finalize()、equals()、toString()等方法。由于所有类都是Object类的子类,所以任何类都可以重写Object类中的方法。
  • 注意:Object类中的getClass()、notify()、notifyAll()、wait()等方法不能重写,因为这些方法被定义为final类型。


    JD.png
z1.PNG

————实例1:

  • Human为父类


    JD.png
  • Student为子类


    z1.PNG
  • 测试程序


    z2.PNG
  • 运行结果


    z3.PNG

————实例2:

  • 主程序


    z1.PNG
  • 创建MyButton类,继承Button


    z2.PNG
  • 使用这个按钮


    z3.PNG
  • 运行效果


    JD.png

3、类的多态 polymorphism

  • 3.1 方法的重载:在同一个类中允许同时存在多个同名方法,只要这些方法的参数个数和类型不同即可。


    JD.png
  • 3.2 向上转型:是从一个较具体的类到较抽象的类的转换,所以向上转型是安全的(例如,可以说平行四边形是特殊的四边形,但不能说四边形是平行四边形)
  • 注意:执行向上转型操作时,父类的对象无法调用子类独有的属性或方法


    JD.png
z1.PNG
  • 3.3 向下转型:将抽象类转换成具体的类。这样的转换通常会出现问题(例如,不能说四边形时平行四边形,也不可以说所有的鸽子都是鸟)
    在做向下转型操作时,将抽象的对象(四边形)转换为具体的对象(平行四边形)肯定会出现问题,这时就要告知编译器这个四边形对象就是平行四边形对象。就有了,显式类型转换:将父类对象强制转换成某个子类对象
  • 注意:使用显式类型转换向下转型时,必须向编译器指明将父类对象转换为哪一种类型的子类对象。


    JD.png
  • 3.4 instanceof关键字:用来判断父类对象是否为子类的实例;判断某个类是否实现了某个接口。且使用instanceof关键字的表达式返回值是布尔值。
  • 注意:instanceof是Java语言的关键字,在Java语言中的关键字都为小写。


    JD.png

4.类之间的关系

纵向关系:比较清晰

  • 继承:父子关系——extends
    实现:类对接口的实现——implements
    横向关系:取决于语义

  • 依赖
    双方的地位往往是独立平等的(地位)
    是偶尔的、临时性的、不频繁的(依赖程度)
    代码层面的表现形式而言,往往是局部的变量
    类B以参数的形式传入类A的方法
    类B以局部变量的形式存在于类A的方法中
    类A调用类B的静态方法
    ——————(员工和游轮)

  • 关联
    双方的地位往往是独立的、平等的(地位)
    是长期的、稳定的、频繁的(依赖程度)
    代码层面的表现形式而言,关联往往以全局属性的形式存在
    ————(员工和手机)

  • 聚合
    双方的地位不是平等的,是整体和部分之间的关系(地位)
    是长期的、稳定的、频繁的,这种关系比关联更强,以至于在形式上出现了整体和部分之间的关系。整体和部分都有自己的生命周期,一方的消失另外一方不会跟着消失。(依赖程度)
    代码层面的表现形式而言可参考关联
    ————(公司和员工)

  • 组合
    双方的地位不是平等的,是整体和部分之间的关系(地位)
    比聚合更强,部分的生命周期取决于整体,部分随着整体的消失而消失(依赖程度)
    代码层面的表现形式而言可参考关联
    区分是聚合还是组合的核心点是在生命周期
    ————(公司和部门)

二、抽象类与接口

1、抽象类与抽象方法

  • 1.1 抽象类——使用abstract关键字定义的类;抽象方法——使用abstract关键字定义的方法.。
    抽象类不能产生对象实例。定义抽象类时,使用abstract关键字
  • 注意:构造方法不能定义成抽象方法


    JD.png
z1.PNG z2.PNG

2、接口的声明及实现

  • 接口的所有方法都没有方法体


    JD.png

3、多重继承

  • 在Java中类不允许多重继承,但使用接口可以实现多重继承。因为一个类可以同时使用多个接口,这样就可以将所有需要实现的接口放在implements关键字后,并使用英文逗号“,”隔开。


    JD.png

4、接口与抽象类的对比

  • 抽象类与接口的区分:


    1.PNG
  • 5个不同点:


    2.PNG
  • 注意:a、抽象类中可以有抽象方法但要有方法体 { }
    b、抽象方法指做方法声明

参考文章:点这里

相关文章

  • 类的特征及抽象类内容

    一、类的三大特征 1.类的封装 package 1.1封装:是面向对象编程的核心思想,封装的载体是类,且对象的行为...

  • 抽象类

    什么是抽象类 抽象类的特征 抽象类的意义

  • JavaSE进阶一 接口

    Java语言中的抽象类 类到对象是实例化,对象到类是抽象类。 什么是抽象类?类和类之间具有共同特征,将这些共同特征...

  • 进阶:抽象类

    抽象类:类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。 类本身是不存在的,所以抽象类无法创建对...

  • Java的抽象类和抽象函数

    主要内容1.抽象函数的语法特征.2.抽象类的语法特征.3.抽象类的作用.在面向对象有一个非常非常有用的东西,先抽象...

  • 抽象类与抽象方法

    抽象类 抽象类的主语作用之一是从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为模版,从而避免子类设计的随...

  • Java 接口 抽象类 枚举

    接口 使用接口对行为进行抽象 接口: 抽象类 抽象类是用来捕捉子类的通用特性的,包括属性及行为。 抽象类: 抽象类...

  • 7.29学习总结

    抽象类 抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象 从多个具有相同特征的类中抽象出一个抽象类,以这...

  • 13.抽象类和抽象函数

    1.抽象函数的语法特征 2.抽象类的语法特征 3.抽象类的作用 什么是抽象函数 只有函数的定义,没有函数体的函数,...

  • 2017-9-21学习总结

    笔记内容: 抽象类 抽象类的一般形式 带有纯虚函数的类称为抽象类: class 类名{virtual 类型 函数名...

网友评论

    本文标题:类的特征及抽象类内容

    本文链接:https://www.haomeiwen.com/subject/gceuqqtx.html