面向对象的三大特征

目录

封装(Encapsulation):

继承(Inheritance):

多态(Polymorphism):


 

  1. 封装(Encapsulation):

    • 定义: 封装是将对象的状态和行为包装在一起,并对外部世界隐藏对象的内部细节。它通过访问修饰符(如 private、protected、public)来控制对类的成员的访问,从而确保对象的内部状态只能通过定义的公共方法来访问和修改。
    • 作用: 封装提供了信息隐藏和安全性。通过将内部实现细节隐藏起来,对象可以防止外部直接访问它的状态,只允许通过定义的接口进行交互。这样,对象的实现可以被灵活地修改而不影响外部使用。
public class Animal {private String name;private int age;public Animal(String name, int age) {this.name = name;this.age = age;}// 封装的 getter 和 setter 方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}// 封装的方法public void makeSound() {System.out.println("Animal makes a sound");}
}
  1. 继承(Inheritance):

    • 定义: 继承是一种机制,通过它一个类(子类/派生类)可以继承另一个类(父类/基类)的属性和方法。子类可以使用父类已有的功能,并且可以通过添加新的方法或修改已有的方法来扩展或修改这些功能。
    • 作用: 继承提供了代码重用和扩展性。它使得在不修改现有代码的情况下可以定义新的类,从而减少了代码的冗余,并且使得代码更易维护。同时,继承也支持多态性。
// 子类 Dog 继承自父类 Animal
public class Dog extends Animal {public Dog(String name, int age) {super(name, age);}// 重写父类的方法@Overridepublic void makeSound() {System.out.println("Dog barks");}// 新的方法扩展public void wagTail() {System.out.println("Dog wags its tail");}
}
  1. 多态(Polymorphism):

    • 定义: 多态是指同一操作作用于不同的对象可以有不同的行为。在面向对象编程中,多态通常有两种形式:编译时多态(静态多态,例如方法的重载)和运行时多态(动态多态,例如方法的重写、接口实现等)。
    • 作用: 多态提高了代码的灵活性和可扩展性。通过多态,一个对象的实际类型可以被隐藏,而调用相同的方法却可能产生不同的行为。这使得程序可以更容易适应变化,而且代码更易于理解和维护。
public class Main {public static void main(String[] args) {// 多态性:父类的引用指向子类的对象Animal myDog = new Dog("Buddy", 3);// 调用重写的方法,实际调用的是 Dog 类的 makeSound 方法myDog.makeSound();// 无法调用子类特有的方法,因为引用类型是 Animal// myDog.wagTail(); // 编译错误// 通过强制类型转换可以调用子类特有的方法if (myDog instanceof Dog) {Dog myRealDog = (Dog) myDog;myRealDog.wagTail();}}
}

 

这三个特征共同支撑了 Java 程序的面向对象设计和编程范式。它们使得代码更具可读性、可维护性,同时提供了更好的代码组织和设计结构。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/219002.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS入门教程(任务通知)

文章目录 前言一、什么是任务通知二、任务通知和队列,信号量的区别三、任务通知的优点和缺点1.优点2.缺点 四、任务状态和通知值五、任务通知相关的函数发出通知取出通知 六、任务通知具体使用1.实现轻量级信号量二进制信号量计数型信号量 2.实现轻量级队列 总结 前…

Shell脚本:Linux Shell脚本学习指南(第三部分Shell高级)二

七、Shell Here String&#xff08;内嵌字符串&#xff0c;嵌入式字符串&#xff09; Here String 是《六、Shell Here Document&#xff08;内嵌文档/立即文档&#xff09;》的一个变种&#xff0c;它的用法如下&#xff1a; command <<< string command 是 Shell 命…

TikTok 将开源“云中和”边缘加速器

“从某种意义上说&#xff0c;我们正在努力破解云的骨干网&#xff0c;以造福于我们&#xff0c;”TikTok产品管理基础设施经理Vikram Siwach指出&#xff0c;他解释了该公司即将开源的“全球服务加速器”的好处&#xff0c;这是一个可编程的边缘平台&#xff0c;可将应用程序需…

单片机学习1——点亮一个LED灯

Keil软件编写程序&#xff1a; 特殊功能寄存器声明&#xff1a; #include<reg52.h>sbit LED P1^0;void main() {LED 0;while(1); } 代码说明&#xff1a; sbit 语句是特殊功能位声明。 生成HEX文件&#xff0c;这个文件是下载到单片机里的文件。Options for Target…

机器学习---贝叶斯网络与朴素贝叶斯

1. 贝叶斯法则 如何判定一个人是好人还是坏人&#xff1f; 当你无法准确的熟悉一个事物的本质时&#xff0c;你可以依靠与事物特定本质相关的事件出现的次数来判断 其本质属性的概率。如果你看到一个人总是做一些好事&#xff0c;那这个人就越可能是一个好人。 数学语言表达…

微机课设--汇编语言在51单片机上写一个四位十进制加法器

代码如下 KEYVAL EQU 30HKEYTM EQU 31HKEYSCAN EQU 32HDAT EQU 33HSCANLED EQU 37HS_DAT EQU 38HD_DAT EQU 39HR_DATL EQU 3AHR_DATH EQU 3BH CALFLAG EQU 3CHFLAG BIT 00HORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN:MOV SP,#5FHMOV TMOD,#01HMOV TH0,#0D8HMOV TL0,…

win10+ vs2017用cmake编译geos3.5.1

参考教程&#xff1a;使用CMake编译Geos3.5.0_cmake geos-CSDN博客 注意事项&#xff1a; 报错&#xff1a;在使用cmake编译geos-3.5.1的时候&#xff0c;会出现报错&#xff1a; CMake Error at CMakeLists.txt:330 (include): include could not find load file GenerateSou…

makefile项目构建

makefile项目构建 OVERVIEW makefile项目构建1.概念2.make选项3.makefile语法&#xff08;1&#xff09;基本语法&#xff08;2&#xff09;系统与自定变量&#xff08;3&#xff09;常用函数&#xff08;4&#xff09;模式匹配与伪目标 4.makefile编译流程&#xff08;1&#…

【模板】KMP算法笔记

练习链接&#xff1a;【模板】KMP - 洛谷 题目&#xff1a; 输入 ABABABC ABA 输出 1 3 0 0 1 思路&#xff1a; 根据题意&#xff0c;用到的是KMP算法&#xff0c;KMP算法思想是通过一个一个匹配首字母的原理进行整个匹配效果&#xff0c;当某个首字母不匹配的时候&#x…

哲学家就餐问题

文章目录&#xff1a; 问题描述及分析一次错误的尝试解决方案一解决方案二 问题描述及分析 哲学家就餐问题规定了有5位哲学家正在进行思考和就餐两种活动。用餐在一个桌子上进行&#xff0c;桌子上面有5个盘子和5个叉子&#xff0c;按照循环的方式分配。 问题的约束条件&#…

Linux学习笔记之六(进程之间的管道通信和信号处理)

目录 1、管道通信1.1、无名管道1.1、有名管道 2、信号处理2.1、信号的种类和发送2.2、信号的接受和处理 1、管道通信 管道通信是一个设备中进程与进程之间通信的一种方式&#xff0c;分为无名管道和有名管道两种。前者只能用于有亲缘关系的进程之间的通信&#xff0c;如父子进…

扫描条形码到电脑:Barcode to pc 4.6.3 Crack

像专业人士一样使用条形码将条形码发送到 PC 排名第一的智能手机扫描应用程序 将条形码即时发送到计算机程序并自动执行任务的最简单方法 受到全球 500,000 多名用户的信赖 条形码到 PC&#xff1a;Wi-Fi 扫描仪应用程序&#xff0c;条码到 PC&#xff1a;适用于 Android 和 i…