IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> javase 类的继承多态 -> 正文阅读

[Java知识库]javase 类的继承多态

面向对象的特征二:继承性

一.为什么要有继承性、继承性的好处?

1.减少代码冗余,提高代码复用性

2.便于功能的拓展

3.为多态的使用,提供基础

二.继承性的格式: class A extends B{}

A:子类、派生类 subclass

B:父类、基类、superclass

2.1体现:一旦子类A继承父类之后,子类A中就获取了父类声明的所有的属性、方法

特别的父类中声明为Private的属性或方法,子类继承父类之后,仍然认为获取了父类私有的结构

只是因为封装性的影响,使得子类不能直接调用父类的结构

2.2 子类继承父类之后,还可以声明自己特有的属性和方法,实现功能的拓展

extends:延展、拓展

三.java中有关继承的规定

1.一个类可以被多个子类继承。

2.java中类的单继承性:一个类只能有一个父类

3.类可以多层继承

4.子类直接继承的父类 称为直接父类。间接继承的父类称为简介父类

5.子类继承父类后,就获取了直接父类和所有间接父类中声明的属性和方法

四.1.所有的java类除了Object类外,都直接或间接继承于Object类

2.所有的java类具有Object类声明的功能

四.方法的重写/覆盖

父类的某方法不是特别适合子类

1.重写:子类继承父类之后,可以对父类同名同参数的方法,进行覆盖操作

2.重写:重写以后,当创建子类对象以后,通过子类对象调用父类的同名同参数的方法,

实际执行的是子类重写父类的方法

3.重写的规定

方法的声明: 权限修饰符 返回值类型 方法名(形参){

//方法体 }

子类重写的方法名和形参列表与父类被重写的方法名和形参列表相同

子类重写的方法权限修饰符不小于父类被重写方法的权限修饰符

特殊情况,子类不能重写父类中声明为private权限的方法

返回值类型:

父类被重写的返回值类型是void,则子类重写的方法的返回值类型只能是void

父类被重写的返回值类型是A类,则子类重写的方法的返回值类型只能是A类或A类的子类

父类被重写的返回值类型是基本数据类型,则子类重写的方法的返回值类型只能是相同的基本数据类型

方法体是不同的,如果是相同的,那么就没必要再重写

子类重写的方法抛出异常类型不大于父类被重写的异常类型

子类和父类中同名同方法都声明为static才考虑重写

五.super关键字的使用

1.super理解为:父类的

2.super可以调用:属性、方法、构造器

3.super的使用:调用属性和方法

3.1我们在子类的方法或构造器中,通过使用"super.属性"或"super.方法"的方式,显式调用父类中声明的属性或方法,通常情况下,习惯省略"super"

3.2特殊情况:当子类重写了父类中的方法以后,我们想在子类方法调用父类被重写的方法,必须用"super.方法",表面调用的是父类的方法

4.super调用构造器

4.1 在子类构造器中显式的使用"super(形参列表)"的方式,调用父类的构造器

4.2"super(形参列表)"的使用,必须生命在子类构造器的首行

4.3我们在类的构造器中,针对"this(形参列表)"或"super(形参列表)"只能2选1

4.4首行没写"this(形参列表)"或"super(形参列表)",默认使用"super(形参列表)"

4.5在类的多个构造器中,至少有一个类的构造器使用了"super(形参列表)"

面向对象之三:多态性
?
??何为多态性:
?? ? ?对象的多态性:父类的引用指向子类的对象(或子类的对象赋值给父类的引用)
??
?多态的使用:虚拟方法调用
?? ? 有了对象多态性以后,我们在编译期,只能调用父类声明的方法,但在执行期实际执行的是子类重写父类的方法
?
??多态性的使用前提:
? ? ?① 类的继承关系
?? ? ② 方法的重写
?对象的多态性:只适用于方法,不适用于属性(编译和运行都看左边)

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

面试点

1.5.1.8强制类型转换

2.抽象类和接口的共同点和不同点?

3.Object类是所有类的父类

Object类中方法的作用

equals方法什么意思?在Object中定义的equals是比较两个对象的地址是否是同一个

特殊的String重写了equals方法,比较的是String的值、实体内容

==号

如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)

如果比较的是引用数据类型变量:比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体

?------------------------------------------------------------------------------------------------------

如果重写equals需要注意什么?

如果重写equals方法的话一定要重写hashCode方法

为什么重写equals方法的话一定要重写hashCode方法?

因为在使用hashmap要 equals和hashCode合作

hashmap中他们两个是怎样合作的?

hashmap中key值判断相等需要用到equals()

hashmap中存储的时候需要用到hashcode()

key一样的对象会根据hashcode分配到同一个桶中

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

wait() 是让当前线程进入等待队列

notify()唤醒线程

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

面试点hashCode

散列码( hash code ) 是由对象导出的一个整型值。散列码是没有规律的。如果 x 和 y 是两个不同的对象, x.hashCode( ) 与 y.hashCode( ) 基本上不会相同。

如果两个对象的hashCode不同,那么他们一定是两个不同的对象

如果两个对象的hashCode一定不同,这句话错误

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

5.4

什么是自动装箱 自动拆箱?

基本类型转包装类称为装箱

包装类型转基本类型成为拆箱

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

final关键字的作用

1.final关键字修饰类? ?被final修饰的类不可以被继承

2.final关键字修饰方法 当一个类的方法被final关键字修饰后,这个类的子类将不能重写该方法

3.final修饰变量? final修饰的变量成为常量,它只能被赋值一次,一旦被赋值,其值不能再修改

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

什么是128方法?

在-128--127中间输出为true 超出就位false

为了节省内存在这个范围内会出现一个自己的常量池 指向一个地址所以会true超出范围 变为false

使用intValue()进行比较 拆箱比较

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:51:22  更:2022-01-11 23:52:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:30:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码