美文网首页
javaSE_day08_继承

javaSE_day08_继承

作者: 智慧之门 | 来源:发表于2018-05-21 14:32 被阅读0次

继承

  根据 已有类 派生出 新类 的技术。

优势

  1.代码重用

  2.便于维护(高耦合)

注意: java类 单一继承:一个 父类 可以有多个 子类,但是子类 只能 有一个 父类。

继承父类:子类 继承 父类中的 ‘所有’ 成员 ,就像自己类中定义的一样使用。

子类不能继承父类中的

  1.父类中 private修饰的成员;

  2.子类 和 父类 不在同一程序包下 ,使用默认访问修饰符的成员;

  3.构造器。

--------------------------------------

继承设计原则

里氏替换原则(LSP):在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化。

--------------------------------------

重载: 通常一个类,方法名相同,参数列表不同,返回值无关

方法重写

  子类中,方法名,参数,返回值类型与父类中的 一样。

注意

  1.必须 子类 ,

  2.实例成员方法,

  3.方法名必须一样

  4.参数 一样 或  父类 擦除后 和子类相同;

  5.返回值 类型和父类相同 或 子类 可以是 父类 的子类型(引用)

  6.子类方法的访问修饰符 不能比 父类更严格(低)

  7.异常,子类 不能 比父类的异常范围更大。

场合

  1.子类 和 父类中 的 方法的功能不同;

  2.子类 修改了 父类中的功能。

父类 手机 {

  来电显示(){

      电话号码

  }

}

子类 手机{

  来电显示(){

      电话号码

      人名

      地址

      照片

    }

}

------------------------------------------------------

super

  表示父类的范围,可以调用 父类的成员(成员变量,方法)

  作用

    1.区分 子类 和 父类 同名的成员;

    2.调用父类构造器

      super();

      位置:子类构造器中;

            子类构造器的第一行代码处

注意

  子类 构造器 中 没有显示 调用父类构造 或 本类构造 , 那么 系统 会 自动分配一个 super()调用父类的 无参构造。

特殊

  父类中 没有无参构造器 ,只有带参构造器 ,

      解决办法: 1)在父类中定义一个无参构造器;2) 子类构造器 中 显示调用父类带参构造器。

继承的传递:子类 可以继承 直接父类的 成员,也可以继承 间接父类的成员。

-------------------------------------------------------------------------------------------------------------------------------------

Object:所有类的基类

  finalize()  垃圾回收 之前调用

强制垃圾回收:System.gc();

  toString(): 对象的字符串描述信息

  注意: 在使用print() 或 pintln()输出对象名时,会 自动调用toString();

  equals() : 比较是否 为同一对象,同一地址

-----------------------------------------------

final修饰符

  1.  : 不能被 子类 继承;

    (1)为了类的安全性 ,不允许子类修改。

    (2) 类之间的方法有复杂的调用关系。

    (3) 此类是最终版本的类,不想再扩展了。

  2.方法:不能被 子类 重写;

  不希望子类更改 ,所有子类 使用的是父类中的同一版本的方法。

  3.变量:值不能更改。常量

  值不能修改。

  常量的好处

    1.安全性。不允许随意更改值。

    2.可维护性。一个常量值更改了,所有应用的地方就都修改了。

    3.增强可读性。

-------------------------------------------------------------

什么情况会派生新类

1.子类 增加属性.

2.子类 增加了方法。

----------------------------------------------------------

设计类 的继承关系注意

  1. 不要超过3层。

  2. 可以被子类继承的类:

    (1)写详细的文档说明。

    (2)尽量封装。private

             对所有用户都开放 public

             只对子类开放  protected

             对所有用户都开放,又不想被 子类更改 final

      手机{

        private 容量;

        protected set(){}

        public get(){}//

      }

-----------------------------------------------------

继承的优点

1.代码重用;

2.便于维护。

继承的缺点

1.高耦合。

2.破坏封装。

------------------------------------------------------

组合

  整体 和 局部;

  体现方式:成员变量

相关文章

  • javaSE_day08_继承

    继承: 根据 已有类 派生出 新类 的技术。 优势: 1.代码重用 2.便于维护(高耦合) 注意: java...

  • 继承 继承

    属性拷贝 继承不单单能通过原型链实现,也能通过其他方式实现,属性拷贝就是其中一种方法。 通过属性拷贝也能实现继承子...

  • 继承(单继承,多继承)

    将共性的内容放在父类中,子类只需要关注自己特有的内容 python中所有的内容都是对象,所有的对象都直接或间接继承...

  • js继承方式

    类式继承 构造函数继承 组合继承 类式继承 + 构造函数继承 原型式继承 寄生式继承 寄生组合式继承 寄生式继承 ...

  • Python-学习之路-08 OOP -02

    单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类可以继承多个类 单继承的多继承的优缺点 菱形继承/钻石...

  • 原型相关(二)

    1.继承 继承方式:接口继承(只继承方法签名)实现继承(继承实际的方法)ECMAScript只支持实现继承,并且主...

  • 继承

    继承的引入和概述 继承案例和继承的好处 继承的弊端 Java中继承的特点 继承的注意实现和什么时候使用继承 继承中...

  • Java面向对象三大特性之继承

    继承 一、继承的特点 Java只支持单继承单继承 多继承 单继承、多继承优缺点①单继承优点:提高了代码的复用性,让...

  • 7、面向对象的程序设计3(《JS高级》笔记)

    三、继承 许多OO语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际方法。由...

  • 【重学前端】JavaScript中的继承

    JavaScript中继承主要分为六种:类式继承(原型链继承)、构造函数继承、组合继承、原型式继承、寄生式继承、寄...

网友评论

      本文标题:javaSE_day08_继承

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