news 2026/10/26 12:51:07

面向对象的三大特性是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面向对象的三大特性是什么?

一、封装(Encapsulation)

核心定义

封装是把对象的属性(数据)和行为(方法)绑定在一起,并隐藏对象内部的实现细节,只对外暴露有限的访问接口。核心目的是数据安全和代码解耦。

实现方式
  • 使用private修饰属性,禁止外部直接访问;
  • 提供public的getter/setter方法来访问和修改属性,可在方法中增加校验逻辑;
  • 把相关的属性和方法封装在一个类中。
代码示例

java

运行

public class User { // 私有属性,外部无法直接访问(封装核心) private String name; private int age; // 提供getter方法,对外暴露读取属性的接口 public String getName() { return name; } // 提供setter方法,对外暴露修改属性的接口,并增加校验逻辑 public void setAge(int age) { // 封装的优势:可以控制数据的合法性 if (age < 0 || age > 150) { throw new IllegalArgumentException("年龄必须在0-150之间"); } this.age = age; } public int getAge() { return age; } // 封装行为:把相关操作封装为方法 public void showInfo() { System.out.println("姓名:" + name + ",年龄:" + age); } } // 测试类 public class EncapsulationTest { public static void main(String[] args) { User user = new User(); // user.age = -10; // 直接访问私有属性,编译报错(封装保护) user.setAge(25); // 通过setter方法合法修改 System.out.println(user.getAge()); // 输出 25 // 非法值会被校验拦截 user.setAge(200); // 抛出 IllegalArgumentException } }

二、继承(Inheritance)

核心定义

继承允许子类(Subclass)复用父类(Superclass)的属性和方法,同时子类可以扩展自己的特有功能。核心目的是代码复用和建立类之间的层级关系。

关键规则
  • Java 中只支持单继承(一个子类只能有一个直接父类),但可以多层继承;
  • 子类通过extends关键字继承父类;
  • 父类的private成员子类无法直接访问,但可通过public/protected方法间接访问;
  • 子类可通过super关键字调用父类的构造方法、属性和方法。
代码示例

java

运行

// 父类:提取通用属性和方法 public class Animal { protected String name; // protected:子类可访问 public Animal(String name) { this.name = name; } // 通用方法 public void eat() { System.out.println(name + "在吃东西"); } } // 子类:继承父类,复用代码并扩展 public class Dog extends Animal { // 子类特有属性 private String breed; // 子类构造方法,必须先调用父类构造方法 public Dog(String name, String breed) { super(name); // 调用父类构造方法 this.breed = breed; } // 子类特有方法(扩展功能) public void bark() { System.out.println(name + "(" + breed + ")在汪汪叫"); } } // 测试类 public class InheritanceTest { public static void main(String[] args) { Dog dog = new Dog("旺财", "哈士奇"); dog.eat(); // 复用父类方法,输出:旺财在吃东西 dog.bark(); // 子类特有方法,输出:旺财(哈士奇)在汪汪叫 } }

三、多态(Polymorphism)

核心定义

多态是指同一个行为(方法)在不同对象上表现出不同的形态。核心目的是解耦和提高代码扩展性,也是面向对象最灵活的特性。

实现条件
  1. 存在继承 / 实现关系;
  2. 子类重写(Override)父类的方法;
  3. 父类引用指向子类对象(向上转型)。
代码示例

java

运行

// 父类 public abstract class Shape { // 抽象方法,由子类实现(不同形态) public abstract void draw(); } // 子类1:圆形 public class Circle extends Shape { @Override public void draw() { System.out.println("绘制圆形"); } } // 子类2:矩形 public class Rectangle extends Shape { @Override public void draw() { System.out.println("绘制矩形"); } } // 测试类:体现多态的核心价值 public class PolymorphismTest { // 统一的方法,接收父类类型,适配所有子类 public static void drawShape(Shape shape) { shape.draw(); // 运行时调用子类的实现(动态绑定) } public static void main(String[] args) { // 父类引用指向子类对象 Shape circle = new Circle(); Shape rectangle = new Rectangle(); // 同一个drawShape方法,表现出不同行为 drawShape(circle); // 输出:绘制圆形 drawShape(rectangle); // 输出:绘制矩形 // 扩展新子类(三角形),无需修改drawShape方法 Shape triangle = new Triangle(); drawShape(triangle); // 输出:绘制三角形 } } // 新增子类:三角形(扩展能力) class Triangle extends Shape { @Override public void draw() { System.out.println("绘制三角形"); } }

总结

  1. 封装:隐藏内部细节,通过接口访问,核心是数据安全(如private属性 +getter/setter);
  2. 继承:复用父类代码,子类可扩展,核心是代码复用(extends关键字);
  3. 多态:父类引用指向子类对象,方法调用动态绑定,核心是代码扩展(重写 + 向上转型)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 9:29:41

科哥OCR镜像支持多格式图片,JPG/PNG/BMP全兼容

科哥OCR镜像支持多格式图片&#xff0c;JPG/PNG/BMP全兼容 你是否还在为OCR工具只支持单一图片格式而烦恼&#xff1f;上传一张BMP证件照提示“不支持该格式”&#xff0c;换PNG截图又报错“文件损坏”&#xff0c;JPG压缩后文字模糊识别失败……这些场景&#xff0c;科哥OCR镜…

作者头像 李华
网站建设 2026/10/24 12:21:23

Qwen2.5-0.5B镜像测评:1GB模型真实性能曝光

Qwen2.5-0.5B镜像测评&#xff1a;1GB模型真实性能曝光 1. 这不是“缩水版”&#xff0c;而是专为CPU而生的对话利器 很多人看到“0.5B”第一反应是&#xff1a;参数这么小&#xff0c;能干啥&#xff1f; 其实&#xff0c;这恰恰是它最聪明的地方。 Qwen2.5-0.5B-Instruct …

作者头像 李华
网站建设 2026/10/25 7:57:15

2026计算机视觉趋势:YOLOv11开源生态与生产落地实践

2026计算机视觉趋势&#xff1a;YOLOv11开源生态与生产落地实践 这个标题里有个关键问题需要先说清楚&#xff1a;截至目前&#xff08;2025年中&#xff09;&#xff0c;YOLOv11并不存在。YOLO系列最新公开发布的正式版本是YOLOv8&#xff08;Ultralytics官方维护&#xff09…

作者头像 李华
网站建设 2026/10/23 12:03:27

手把手教你用科哥镜像部署语音情感分析,避开常见坑少走弯路

手把手教你用科哥镜像部署语音情感分析&#xff0c;避开常见坑少走弯路 1. 为什么选这个镜像&#xff1f;先说清楚它能解决什么问题 你是不是也遇到过这些场景&#xff1a; 客服质检团队每天要听几百通录音&#xff0c;靠人工标记“客户是否生气”“语气是否不耐烦”&#x…

作者头像 李华
网站建设 2026/10/22 15:32:09

Llama3-8B医疗咨询辅助:非诊断类问答部署可行性分析

Llama3-8B医疗咨询辅助&#xff1a;非诊断类问答部署可行性分析 1. 为什么选Llama3-8B做医疗咨询辅助&#xff1f; 很多人一听到“医疗AI”&#xff0c;第一反应是“这得用超大模型吧&#xff1f;得配A100集群吧&#xff1f;” 其实真不是。 在实际业务中&#xff0c;大量医…

作者头像 李华
网站建设 2026/10/24 23:37:48

亲测GPEN人像增强镜像,老旧照片秒变高清实录

亲测GPEN人像增强镜像&#xff0c;老旧照片秒变高清实录 你有没有翻出过泛黄的老相册&#xff1f;那张被折痕划过的全家福、模糊不清的毕业合影、像素糊成一团的童年照——它们承载着真实的情感&#xff0c;却困在低画质里多年。直到我点开终端&#xff0c;输入一行命令&#…

作者头像 李华