Java 程序设计 第4章 继承 笔记

简介: Java 程序设计 第4章 继承 笔记

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打印对象时会自动调用。


相关文章
|
存储 Java 开发者
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
本文详细介绍了 Java 中 `toString()` 方法的重写技巧及其重要
924 10
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
798 15
|
前端开发 JavaScript Java
Java构建工具-maven的复习笔记【适用于复习】
这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
474 3
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
284 2
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
373 0