Java面向对象基础 笔记记录

面向对象的三大特征:封装,继承,多态。

由于本人之前已经学过C++的面向对象部分,因此Java这一块只是记录一下笔记,而没有代码/截图等

封装

封装是面向对象编程中的重要概念,它指的是将对象的内部状态和行为隐藏起来,只对外部提供公共的访问接口。这样做的好处是可以保护对象的数据,防止外部直接对其进行修改,同时也可以通过公共接口来控制对象的行为。

在Java中,封装主要通过访问修饰符来实现,比如private、public、protected、default。通常情况下,我们会将对象的字段定义为private,然后通过公共的get和set方法来访问和修改这些字段。这样一来,外部无法直接访问对象的私有字段,只能通过公共的接口来操作对象。这种方式可以确保对象的数据安全性,同时也可以隐藏实现细节,减少外部对对象的依赖。

继承

  • 子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能在子类直接访问,要通过父类提供的公共的方法去访问。
  • 子类必须调用父类的构造器,完成父类的初始化
  • 当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器 ,如果父亲没有提供无参构造器,则必须在子类的构造器中使用super去指明使用父类的哪个构造器完成对父类的初始化工作,否则编译不会通过。
  • 如果希望指定去调用父类的某个构造器,则显示的调用一下
  • super在使用时,需要放在构造器第一行
  • super和this都只能放在构造器第一行,因此这两个方法不能共存在一个构造器
  • java所有类都是Object类的子类,Object是所有类的基类
  • 父类构造器的调用不限于直接父类!将一直往上追溯到Object类
  • 子类最多只能继承一个父类(指直接继承),即Java中是单继承机制
  • 不能滥用继承,子类和父类之间必须满足is-a的逻辑关系

多态

方法多态:

重写和重载就体现多态。

对象多态:

多态的前提是:两个对象(类)存在继承关系

  • 一个对象的编译类型和运行类型可以不一致
  • 编译类型在定义对象时,就确定了,不能改变
  • 运行类型是可以变化的
  • 编译类型看定义时 = 号的左边,运行类型看 = 号右边

例如:

java 复制代码
Animal fo = new Dog();

fo的编译类型是Animal,运行类型是Dog。

向上转型

本质:父类的引用指向了子类的对象

语法:父类类型 引用名 = new 子类类型()

特点:编译类型看左边,运行类型看右边。

可以调用父类中的所有成员(需遵循访问权限),不能调用子类中特有的成员。

向下转型:

语法:子类类型 引用名 = (子类类型)父类引用。

只能强转父类的引用,不能强转父类的对象。

要求父类的引用必须指向的是当前目标类型的对象。

可以调用子类类型中所有的成员。

0314_韩顺平Java_动态绑定机制_哔哩哔哩_bilibili

相关推荐
ACP广源盛139246256732 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
哦虎!2 小时前
【JavaEE】网络初识
java
for_ever_love__2 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
文人sec3 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
程序猿追3 小时前
kotlin-retry 接入鸿蒙后,怎样确认它真的会停止重试
开发语言·kotlin·harmonyos
我是人✓3 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
智能直播3 小时前
网络RTMP拉流不卡顿、声音不同步,一文讲透缓冲区、时间戳
开发语言·ffmpeg·php·音视频·视频编解码
欣栀♡3 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室4 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
慧都小项4 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs