深入理解Java面向对象三大特性:封装、继承、多态
封装(Encapsulation)
1. 核心概念
封装是指将类的成员变量私有化,对外提供公共的访问方法,隐藏对象的内部实现细节,仅暴露安全的访问入口,杜绝外部随意篡改数据,保证数据安全性。
核心思想:隐藏细节、对外开放。
2. 实现步骤
1)使用private修饰成员变量,实现私有化; 2)提供public的getter/setter方法,用于获取和修改属性; 3)可在setter方法中加入数据校验逻辑,保证数据合法性。
3. 代码示例
public class Student {
// 私有化成员变量 private String name; private int age; // 提供get/set方法 public String getName() { return name;
}
public void setName(String name) {
this.name = name;
} public int getAge() { return age; } // 数据校验:年龄合法校验 public void setAge(int age) { if(age > 0 && age < 150){ this.age = age; }else{ System.out.println("年龄不合法!"); } } }
4. 封装的优点
1)提高数据安全性,避免外部非法修改数据; 2)代码可维护性更高,内部逻辑修改不影响外部调用; 3)代码更规范,降低程序出错概率。
三、继承(Inheritance)
1. 核心概念
继承是指一个类(子类/派生类)可以获取另一个类(父类/超类)的属性和方法,实现代码复用。Java中使用extends关键字实现继承,且Java为单继承,一个子类只能有一个直接父类。
2. 核心特点
1)子类拥有父类非私有属性和方法; 2)子类可以扩展自己的新属性、新方法; 3)子类可以重写父类方法,实现功能拓展; 4)构造方法不能被继承,私有方法无法被继承。
3. 代码示例
// 父类:人类 class Person{ public String name; public void sleep(){ System.out.println("人类需要睡觉"); } } // 子类:学生类,继承人类 public class Student extends Person{ // 扩展子类独有属性 public int stuNo; // 扩展子类独有方法 public void study(){ System.out.println("学生正在学习"); } }
4. 继承的优点
1)极大提高代码复用性,重复代码只需写一次; 2)让类与类之间产生层级关系,结构更清晰; 3)为多态的实现提供基础。
四、多态(Polymorphism)
1. 核心概念
多态指同一行为,不同实现。父类引用指向子类对象,在程序运行时根据实际对象类型执行对应的方法实现。多态分为编译时多态(方法重载)和运行时多态(方法重写),日常所说多态多指运行时多态。
2. 多态实现前提
1)必须存在继承关系; 2)子类必须重写父类方法; 3)父类引用指向子类对象。
3. 代码示例
class Animal{ public void shout(){ System.out.println("动物发出叫声"); } } class Dog extends Animal{ // 重写父类方法 @Override public void shout() { System.out.println("小狗汪汪叫"); } } class Cat extends Animal{ // 重写父类方法 @Override public void shout() { System.out.println("小猫喵喵叫"); } } // 测试多态 public class Test{ public static void main(String[] args) { // 父类引用指向不同子类对象,实现多态 Animal a1 = new Dog(); Animal a2 = new Cat(); a1.shout(); a2.shout(); } }
4. 多态的优点
1)降低代码耦合度,提高程序扩展性; 2)新增子类无需修改原有代码,符合开闭原则; 3)统一调用入口,代码更简洁优雅。
五、总结
封装、继承、多态三者相辅相成:封装保证数据安全,继承实现代码复用,多态实现程序扩展。三大特性是Java面向对象的核心精髓,熟练掌握后可以写出高复用、高内聚、低耦合的优质代码,是进阶Java开发的必备基础。
更多推荐

所有评论(0)