Java 程序设计 第4章 继承 笔记
  TEZNKK3IfmPf 2023年11月12日 33 0

4.1 类的抽象和扩展

继承是从已有类派生出新的类,新的类称为子类,已有类称为父类或超类。

子类有父类的数据和行为。

继承是一种"is-a"关系。

Java只支持单继承,不支持多继承(避免了使用多继承时出现的复杂问题)。

Java中只有Object没有父类,其他每个类都有一个直接的父类。

如果一个类没有指定父类,则它的父类默认是Object。Object类定义了一些类公有的行为。

4.2 继承的定义

4.2.1 语法格式

继承的一般格式:

[类的修饰符]class 子类名 extends 父类名{

...

}

使用extends 父类名 表示要继承的父类。

4.2.2 构造器与实例化

子类和父类属于两个不同的语句块,属于两个不同的作用域。

子类可以访问父类的成员,

子类和父类的成员都由自己的构造器完成初始化。

子类进行初始化时,会调用父类的构造器,可以用super(参数列表)指定使用哪个父类的构造器。

 对象 instanceof 类

判断左边对象是否是右边类的实例。

 4.2.3 super的使用

super除了当成构造器来用之外,还可以作为作用域使用。

4.2.4 继承关系下的作用域(第3章已有,略)

 4.3 方法的覆盖

1.多态 根据对象实际类型调用相应的方法

2.final修饰符修饰的方法不能被覆盖,final修饰的类(class)不能被继承。

3.使用@Override覆盖方法可以让编译器做语法检测

4.子类的override方法的修饰符能弱于父类的方法。

5.子类的override方法的异常列表中的异常类不能多于父类的异常列表中的异常类型。

 4.4 类型转换

子类可以赋值给父类;父类可以通过强制类型转化赋值给子类,但前提是这个父类对象实际上是一个子类对象,否则在使用时会出错。

4.5 根父类:Object类

Java中所有的类都继承自Object类.

Object类为所有类提供了基本的属性和方法,是类的高度概括。

Object提供了一个缺省构造器和一组基本方法:

方法

作用

protected Object clone()

克隆

boolean equals(Object obj) 

判断相等

protected void finalize()

析构

Class<?> getClass()

返回运行时类型

int hashCode()

返回对象的hash码

void notify()

唤醒当前对象监视的等待线程

void notifyAll()

唤醒当前对象

void wait()

让当前线程等待

void wait(long timeout)

让当前线程等待timeout毫秒

void wait(long timeout, int nanos)

让当前线程等待timeout毫秒+纳秒

String toString()

将对象转换成字符串,println打印对象时会自动调用。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   21天前   48   0   0 java
  TEZNKK3IfmPf   2024年05月31日   55   0   0 java
TEZNKK3IfmPf