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知识库 -> Java面向对象笔记(待续) -> 正文阅读

[Java知识库]Java面向对象笔记(待续)

面向对象的特征

继承性

方法的重写

四种不同的权限修饰

super关键字

多态性


1.继承性

继承(extends):public class 子类 extends 父类

Ctrl+T 查看继承结构

1.1 体现:一旦子类A继承父类B之后,子类A中就获取到了父类B中声明的结构、属性和方法

? 特别的,父类中声明为private的属性和方法,子类继承父类之后,仍然认为获取了父类中私有的结构,只是因为封装性的影响,使得子类不能直接调用父类的结构而已

示例:

public class A extends B{}

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

1.3 子类和父类的关系:不同于子集和集合的关系

? extends:延展 拓展

1.4 java中关于继承性的规定:

  • 一个子类只能有一个父类
  • **Java中类的单继承性:**一个类只能有一个父类
  • 子父类是相对的概念
  • 子类直接继承的 父类,称为直接父类;同理,间接继承的父类称为间接父类

1.5

  1. 如果没有显示的声明一个类的父类的话,此类继承于java.lang.Object类
  2. 所有的java类(除java.lang.Object类之外)都直接或间接继承于java.lang.Object类

继承性的好处

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

  • 便于功能拓展

  • 多态的使用提供前提


2.方法的重写

概念

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

  2. 应用: 重写之后,当创建子类对象,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法

  3. 重写的规定:

    ? 方法的声明:

    权限修饰符 返回类型 方法名(形参列表){
        //方法体
    }
    

    要求

    1. 重写和被重写的方法名、形参列表要相同

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

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

    3. 返回值类型:

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

      ? >父类被重写的方法返回值类型是A类型,则子类重写的方法返回值类型可以是A类或A类的子类

      ? >父类被重写的方法返回值类型是基本数据类型(比如double),则子类重写的方法返回值类型必须是相同的基本数据类型

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


      子类和父类中的同名同参数的方法要么都声明为非static的,要么都声明为static的(不是重写)

在这里插入图片描述

重载(Overload)和重写(Override)的区别:


方法的重载和重写都是实现多态的方式

区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。

重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。

重载对返回类型没有特殊的要求,不能根据返回类型进行区分


3.四种不同的权限修饰

在这里插入图片描述


4.super关键字

(1)理解

  1. super可以理解为:父类的
  2. super可以用来调用属性、方法、构造器

(2)使用方法

super.属性
super.方法
//显示调用父类中声明的属性或者方法

(3)使用情景

  • 子类和父类中定义了同名属性,想在子类中调用父类中生命的属性时,super.属性
  • 子类重写了父类的方法之后,调用父类中被重写的方法时,super.方法

(4)super调用构造器

  • 4.1 可以在子类的构造器中显式使用**“super(形参列表)”**的方式,调用父类中声明的指定构造器
  • 4.2 **“super(形参列表)”**的使用,必须声明在子类的首行!
  • 4.3 类的构造器中,针对**“this(形参列表)”或“super(形参列表)”**只能二选一,不能同时出现
  • 4.4 在构造器的首行,没有显示声明“this(形参列表)”和“super(形参列表)”,则默认调用父类中空参构造器super()
  • 4.5 在类的多个构造器中 至少有一个类中使用了“super(形参列表)”,调用父类中的构造器

(5)super调用构造器需要注意

  • this(形参列表): 本类重载的其他的构造器
  • super(形参列表): 调用父类中指定的构造器

5.多态性

(1)多态:父类的引用指向子类的对象(子类的对象赋给父类的引用)

? 理解:可以理解为一个事物的多种形态,可以直接用在抽象类和接口上

(2)多态的使用:当调用子父类同名同参数的方法,实际执行的是子类重写父类的方法–虚拟方法调用

? 有了对象的多态性之后,编译期只能调用父类中声明的方法,但运行期实际执行的是子类重写父类的方法

? 总结:编译看左,运行看右

? 前提:(1)类的继承关系 (2)方法的重写

(3)对象的多态性只适用于方法,不适用于属性(编译和运行都看左边)

在这里插入图片描述

(4)重载和多态的区别:

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:11:30  更:2021-09-14 13:12:57 
 
开发: 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/23 17:10:31-

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