zoukankan      html  css  js  c++  java
  • 六、面向对象之继承


    1.概念
    如果两个或者两个以上的类,具有相同的属性和方法的话,我们可以抽取一个类出来,在抽取出来的类中声明各个类中公有的属性和方法

    被抽取出来的类---父类、超类、基类
    两个或者两个以上的类---子类、派生类


    他们之间的关系----子类继承自父类

    2.语法:
    父类
    访问权限修饰符 class 父类类名{
    //公有的属性和对应的方法
    }
    子类
    访问权限修饰符 class 子类类名 extends 父类类名{
    特有的属性和方法
    }


    结论:
    子类可以访问到父类中能看见的【在访问权限内的,除了private】所有属性
    子类可以访问到父类中能看见的【在访问权限内的,除了private】所有方法
    构造方法不能被继承,每个类都应该有自己的独特的构造方法
    实例化子类对象的时候,不管调用的是子类的哪一个构造方法,都会默认去调用父类无参的构造方法
    一个父类有多个子类
    一个子类只能有一个父类【单继承】
    类之间,Java支持多重继承不支持多继承
    举例说明:A B C
    多继承:A exteds B,C【这是不支持的】
    多重继承:A extends B B exteds C


    3.子类对象实例化的过程
    子类对象在实例化的时候,先实例化父类部分,然后实例化子类部分

    对象在内存中生成的过程
    a.将对象所需的类文件加载入文件
    b.在内存中的栈空间开辟相应的空间
    c.通过new关键字在对内存中开辟空间
    d.将对象中的非静态的成员变量赋值,
    e.调用对应的构造方法,给成员变量赋值
    f.通过子类的构造方法默认的去调用父类的构造方法,初始化父类部分

    4.super关键字
    this:表示对当前对象的引用
    super:表示对父类对象的引用
    a.super.属性 表示访问父类中的成员变量
    b.super.方法 表示访问父类中的方法
    c.super() 调用父类中的构造方法

    super.属性和this.属性获取到的结果一样的【除了private修饰的属性】
    super.方法和this.方法相当与调用了同一个方法

    注意问题:
    尽量避免子类中出现和父类同名的成员变量
    如果在子类中出现了和父类中同名的方法,this.方法调用当前类中的方法,覆盖父类同名的方法


    this():
    a.只能出现在子类构造方法第一行
    b.只能出现一次
    c.具体调用的是父类中的哪个构造方法,取决于所传的参数
    d.this()和super()不能同时出现


    继承的总结:
    1>对于类而言,Java中使用的单继承【一个子类只能有一个父类】
    2>要将确实存在继承关系的类设计为继承,可以最大限度上提高代码的复用性
    3>子类可以从对应的父类中继承在访问权限内的属性和方法
    4>父类中的构造方法不能被子类继承【每个类中都有自己特有的构造方法】

  • 相关阅读:
    甲午年总结
    浅谈数字营销
    机器学习笔记
    上海GDG活动有感
    我也谈谈游戏
    CSS3新增属性
    js事件详解
    DOM与BOM相关操作
    JS基础知识
    js数据类型
  • 原文地址:https://www.cnblogs.com/lsp-lsp/p/7341917.html
Copyright © 2011-2022 走看看