• JavaOO 继承


    本章目标:

    理解继承的概念

    掌握Java中继承的实现方式

    理解方法的重写

    理解最终类和最终方法

    继承:

    仔细观察,我们可以在几种员工身上发现一些共有的特征和行为,而它们中的大部分我们在 Employee中定义。而它们的不同仅是个别的地方。

    在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式称为继承

    含有共同属性的类称为父类(基类)

    特有属性的类称为子类(派生类)

    public class 子类名 extends 父类名 {  }

    类与类的关系:

    1、use a

    2、has-a(组合)

    3、is-a(继承)

    继承的优点:

    1、代码的可重用性

    2、父类的属性和方法可用于子类

    3、子类可扩展父类的属性和方法

    4、设计应用程序变得更加简单

    在Java中,一个类只能有一个父类

    所有类的根类都是Object

    public boolean equals(Object x);

    public String toString();

    来自于Object,

    protected void finalize()throws Throwable;----与构造方法对立,构造方法是构造对象,它是销 

                                                                                 毁对象

    final    finally   -----关键字

    finalize -------方法,属于Object的方法,由垃圾回收器调用

    方法重写:

    子类把从父类继承而来的方法,重新实现一次

    子类方法访问修饰符必须大于等于父类访问修饰符

    重写要求:

    1、方法名、返回类型、参数列表必须要保持一致

    2、访问修饰符重写后必须大于等于重写前

    3、重写后方法抛出的异常不能比重写前多(多,不是指个数而是指范围)

    Object中自带一个toString方法,该方法的作用是返回对象的字符串描述

    Object作为父类,在实现过程中不知道子类的具体形态,所以只能简单的返回:全类名@16进制引用

    书写子类的程序员可以按自己的方式重写该方法,返回自定义的字符串描述

    Object自带一个equals方法,该方法的作用是判定两个对象在业务逻辑下是否相等

    Object作为父类,在实现过程中不知道子类的具体业务逻辑,所以只能简单的返回引用是否相等

    书写子类的程序员按自己的业务逻辑重写该方法,返回真假。(绝不是简单的所有属性都一样才返回true)

    由于构造方法不能被继承,所以构造方法不能被重写

    super关键字:

    this();调用本类的其他构造 ---------没有默认

    super();调用父类的指定构造-------有默认,默认调用父类的公共无参构造

    语法:两个都只能写在本类构造方法的第一句

    this. ----指当前对象 

    可以看到本类的属性、行为,不受访问修饰符影响

    可以看到来自父类的属性、行为,受访问修饰符限制

    super. --指当前对象的父类对象部分

    看不到本类的任何属性、行为

    可以看到来自父类的属性、行为,受访问修饰符限制

    结论:调用重写后的方法时,this.得到的是重写后子类的实现,super.得到的是重写后父类的实现,只有这种情况根据需求选用,其余时候尽量使用this.操作

    final关键字:

    如果final修饰了一个类,这个类就叫做最终类或终态类,不能被继承

    如果final修饰了一个方法,这个方法就不能被重写

  • 相关阅读:
    Appium之启动第一个App
    Appium简介
    C语言-malloc,calloc,realloc 函数的使用(堆空间的使用)
    C语言-const 修饰符,static 和 extern修饰符
    C语言-字符串与指针,fgets 函数,fputs 函数
    C语言- 指针(初始化,作用,指针与整数的加减法,指针与指针的减法,指针与指针之间的比较,指针与数组,函数的关系,中括号的本质)
    C语言-字符串
    C语言-数组
    C语言-类型说明符 long,short,unsigned,signed
    C语言-char 类型基本概念
  • 原文地址:https://www.cnblogs.com/wuhao-bky/p/6395115.html
Copyright © 2020-2023  润新知