Java教程

Java 继承学习总结

本文主要是介绍Java 继承学习总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java 继承学习总结

本章学习目标

  • 重点掌握继承的作用

  • 掌握 extends 关键字的含义和用法

  • 重点掌握方法重写

  • 掌握 super 关键字的含义和用法

  • 掌握 final 关键字的含义和用法


什么是继承

继承就是在面向对象编程中,通过扩展一个已有的类,并拥有该类的所有属性和方法,来创建一个新的类。

被继承的类叫基类或父类,继承的类叫子类或派生类。

注意:构造器不支持继承,必须为子类定义显示构造器或使用隐式默认构造器

类与类的关系

  • 继承关系(is - a)

    代表的是两个类是同一类型,有着部分相同的属性和方法,完全符合 is – a 关系

  • 组合关系(has - a)

    代表的是两个类是不同类型,有着一个类包含或拥有另一个类,完全符合 has – a 关系

extends 关键字

extends 关键字用于表示 Java 中两个类之间存在继承关系

代码格式

访问修饰符 class 子类名 extends 父类名  {
    …
}

继承的优缺点

优点
  • 提高代码的可复用性(减少创建类编写代码的工作量)

  • 提高代码的可扩展性

缺点
  • 打破代码的封装性(父类向子类暴露实现细节)

  • 降低代码的灵活性(父类更改子类也同时更改)

单继承与多继承

Java 不支持多继承,即一个类有且仅有一个父类或基类

Object 类

Object 类是 Java 所有类的根类,一个类如果没有继承任何类则默认继承 Object类

Object 类的方法如下:

public final Class getClass();
public int hashCode();
public boolean equals(Object x);
protected Object clone() throws CloneNotSupportedException;
public String toString();
protected void finalize() throws Throwable;
public final void wait() throws InterruptedException;
public final void notify();

方法重写

方法重写就是子类可以重写从父类继承的方法,从而允许子类改变父类中方法的行为

方法重写规则
  • 子类重写的方法签名必须和父类完全相同

    重写方法的返回值类型、方法名和形式参数列表都要与父类完全一致

  • 子类重写的方法权限访问修饰符必须不小于父类中的访问修饰符

    权限访问修饰符访问权大小顺序为:public > protected > private

  • 子类中重写的方法抛出异常不能比父类范围大

    避免异常处理机制出现问题

方法重写与方法重载的区别
  • 方法重写:子类中的方法与父类中的方法签名完全相同(方法名称、参数列表、返回值类型) - 两个类有继承关系

  • 方法重载:一个类中的方法与另一个方法名相同但参数列表不同 - 一个类有相同方法名

super 关键字

this 关键字表示当前对象的引用,super 关键字表示父类对象的引用

super 使用方法

super.属性名;//子类调用父类对象属性
super.方法名;//子类调用父类对象方法
super(…); //子类调用父类构造器(第一行)
子类对象实例化流程
  • 先实例化父类对象(调用父类构造器)

  • 再实例化子类对象(调用子类构造器)

  • 父类的静态初始化块 子类静态初始化块 父类的初始化块 父类构造器 子类初始化块 子类构造器

public  class Car   {
       public Car ( ) {
              System.out.println(“汽车构造器”);
       }
} 
​
public  class  SportsCar extends Car   {
       public SportsCar ( ) {
              super( ); //调用父类构造器
              System.out.println(“跑车构造器”);
       }
} 
​

final 关键字

final 关键字表示最后的、不可更改,可用于修饰类、属性(或成员变量)、方法

 

这篇关于Java 继承学习总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!