Skip to content

Latest commit

 

History

History
53 lines (32 loc) · 2.09 KB

java继承1.md

File metadata and controls

53 lines (32 loc) · 2.09 KB

title: java继承和多态(1)

layout: post

date: 2017-03-20 13:01:33

categories: java基础

tags: [继承, 多态]


继承内容

  • 子类继承父类所有属性
  • 子类继承父类除了private关键字修饰之外的所有方法
  • 子类对象拥有super引用,表示父类的引用,可以调用父类的属性或方法。
  • 子类不继承父类的构造方法,但在new一个子类对象调用子类构造函数前,会先调用父类的构造函数。

初始化顺序

  1. 初始化父类中的静态成员变量和静态代码块
  2. 初始化子类中的静态成员变量和静态代码块
  3. 初始化父类的普通成员变量和代码块,再执行父类的构造方法
  4. 初始化子类的普通成员变量和代码块,再执行子类的构造方法

继承中的this和super

  • 构造函数中的this表示当前正在初始化的对象引用,方法中的this表示当前正在调用此方法的对象引用。
  • super 表示调用父类中相应的属性和方法,在方法中如果需要调用父类的构造方法时,一定要放在第一行
  • 子类实例化时调用父类构造方法有好多注意点 http://blog.csdn.net/hw20070575/article/details/50777669

方法的重写

  • 如果在子类中定义某方法与父类有相同的方法名参数列表,则该方法被重写。
  • 子类函数的访问修饰权限大于等于父类被重写的函数的访问修饰权限
  • 重写方法一定不能抛出新的检查异常或者比被重写方法声明的更加宽泛的检查性异常。

继承的特性

  • java 的类继承是单继承,但可以多重继承,就是只有一个爸爸,但是爸爸也有爸爸,爷爷也可以有爸爸~

  • 继承提高了类之间的耦合性(继承的缺点

  • 一个类如果没有用extends写明继承自谁,那就默认继承object(在java.lang中,不用import)

  • 构造器不能被继承。

  • 接口可以继承自多个接口

    注:声明为final的类不可以被继承,它的方法自动声明为final而其中的变量并不会自动声明为final