当前位置: 首页 > news >正文

Java三大特性

OOP 面向对象三大特性:封装、继承、多态、(抽象)
1.封装
只暴露对象的公开属性和方法,无法看到内部实现过程;对象功能内聚,模块之间的耦合降低,更有维护性。
设计模式七大原则之一的迪米特原则,是对封装的具体要求。
a.内部类

2.继承 Is-a
复用对象。
里氏替换原则。
子类不继承父类的私有属性和方法,但可以通过反射获取私有。

🔺一个类如果存在一个有参构造方法,则一定要添加一个无参构造方法,防止可能发生的继承错误。
因为如果没有显式的提供构造方法,提供一种初始化对象的途径;如果显式提供了任何构造方法(包括无参和有参构造方法,默认的无参构造方法就不会自动生成,因为
默认的构造方法可能不符合用户的需求了。)

a.this和super
this:代表当前对象的引用,谁调用,代表谁。
this只能在类中的非静态方法使用。

super:代表当前对象父类的引用。
super不能在static中使用。
Ⅰ:调用成员变量
* this.成员变量,调用本类成员变量,也可以调用父类成员变量
* super.成员变量,调用父类成员变量
Ⅱ:调用构造方法
* this(...args) 调用本类的构造方法
* super(...args) 调用父类的构造方法
Ⅲ:调用成员方法
* this.成员方法 调用本类的成员方法,也可以调用父类的方法
* super.成员方法 调用父类的成员方法

子类的构造方法引用super,必须把super放在方法首行。

3.多态
根据运行时的实际对象不同,同一个方法会产生不同的运行结果,使同一个行为具有不同的表现形式(真正执行的方法取决于运行时期实际对象的方法)。
接口引用对象就是多态的一种表现形式。
多态实现的三个前提条件:
a.继承或接口实现
b.方法重写(子类可以根据自己的需求重写父类的方法,以实现不同的行为)
c.父类引用指向子类对象(向上转型)
Person person = new Student();//Person是Student的父类,向上转型。

4.override 运行期
重写。多态的一种。jvm编译器无法确定最终的方法体,在运行期由jvm动态绑定,调用合适重写方法执行。
子类实现接口,或继承父类时,保持方法签名一致,方法体不同的形式。

5.overload 编译期 静态绑定
重载。
同一个类中,方法名称相同,参数不同,方法体不同的形式。

Cat garfield = new GarfieldCat(); //只会执行父类对象能找到的方法。
(可通过
a.直接创建实现类 GarfieldCat garfield = new GarfieldCat();
b.向下转型 执行子类方法,GarfieldCat newGarfield = garfield;
c.反射 Method method =garfield.getClass().getMethod("eats", String.class); method.invoke(garfield,"意大利面"))

Animal garfield = new GarfieldCat(); //只会执行接口中的方法。同上。

http://www.hskmm.com/?act=detail&tid=36111

相关文章:

  • 高级程序设计第二次作业
  • 10月21日日记
  • home-assistant.-Adding integrations
  • Windows系统内存占用过高,且任务管理器找不到对应进程
  • NOIP 二十五
  • 理想婚姻
  • equal和hashcode
  • Ancestral Problem 题解
  • AWS IAM角色最佳实践:构建云安全的核心防线
  • 正睿 2025 NOIP 20连测 Day6
  • Hetao P5593 删 题解 [ 蓝 ] [ 线性 DP ] [ DFS 序 ] [ 虚树 ]
  • o(N^2)找出所有回文子串
  • 第二次高级程序作业
  • 大学生需要认真听课的肌肉记忆(注意力训练)
  • 初始人工智能和机器学习
  • 10/21
  • 蛋白表达技术概述
  • 二叉树的中序遍历- 递归原理 - MKT
  • 友链测试
  • 二叉树的中序遍历- 二叉树基本-递归 - MKT
  • 做了一个概率小游戏,没想到服务器被打爆被攻击了!原因竟然是他?真没想到...
  • 接下来的目标
  • 阿里云对象存储OSS之Java - Soul
  • 敬启,致那时的我
  • 后量子密码学技术与标准化进程解析
  • 10月21日
  • 清楚标签默认样式,内容溢出盒子时的处理
  • 用 大模型 和 Gradio 构建一个 AI 反向词典
  • MySQL 事务
  • python概念详解