Java三大特性:封装、继承与多态原理及代码实现
Java面向对象的三大核心特性是封装、继承和多态。封装用于隐藏内部细节并提供安全访问接口;继承实现代码复用并建立类层次;多态允许同一操作作用于不同对象时表现不同行为,通常结合向上转型与方法重写使用。理解这三者的协作机制是掌握Java程序设计的关键。
封装:隐藏细节与安全访问
封装是将类的属性(成员变量)隐藏在类的内部,禁止外部程序直接访问或修改。这通常通过 private 权限修饰符来实现。为了在保护数据的同时允许外部交互,需要提供公共的访问方法:
- Getter方法:
public getVariableName(),用于获取成员变量的值。 - Setter方法:
public setVariableName(Parameter),用于设置成员变量的值。注意变量名首字母需大写。
这种设计确保了数据的完整性和安全性,防止非法赋值。
继承:代码复用与类关系
继承描述了类与类之间“属于”的关系,类似于集合中的包含与被包含。例如,“大学生”类可以继承“学生”类。在Java中:
- 父类/基类:被继承的类。
- 子类/派生类:继承其他类的类。
Java支持单继承(一个类只能有一个直接父类,但允许多层次继承如“孙子-父亲-爷爷”的关系)和多实现(接口)。继承的核心格式如下:
public class SubClass extends SuperClass {
// 子类内容
}
多态:同一接口,多种形态
封装和继承大多是为了服务于多态。多态是指同一个行为具有多个不同的表现形式。例如:
- 具体实例:
Unst u = new Unst();(大学生对象)。 - 向上转型:
Student s = new Unst();(将大学生视为一般学生)。
在不同上下文中,对象表现出不同的形态,这就是多态。其实现前提包括:
- 存在继承关系。
- 发生方法重写(Override)。
- 有父类引用指向子类对象。
实战代码演示
以下代码通过创建计算机类体系,完整演示了封装、继承和多态的综合应用。
第1步:定义父类并实现封装
父类 Computer 定义了基本属性并通过 private 和保护性方法实现封装。
package Cl1;
public class Computer {
// 使用 private 进行封装
private String name;
private int price;
// 构造方法
public Computer() {}
public Computer(String name) {
this.name = name;
}
// Getter 和 Setter 方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getPrice() { return price; }
public void setPrice(int price) { this.price = price; }
// 基类行为
public void study() {
System.out.println("电脑能用来学习,也能敲代码");
}
}
第2步:创建子类实现继承与方法重写
Lenovo 继承自 Computer,并重写了 study 方法来体现品牌特有的行为。
package Cl1;
public class Lenovo extends Computer {
public Lenovo() {}
public Lenovo(String name) {
super(name);
}
// 重写 study 方法
@Override
public void study() {
super.study(); // 调用父类方法
System.out.println(getName() + "价格" + getPrice() + "rmb, 敲代码年入百万不是梦");
}
}
第3步:构建多态应用场景
Apple 类接收父类引用作为参数,演示如何通过统一接口处理不同子类对象。
package Cl1;
public class Apple {
// 接受父类类型参数,体现多态
public void make(Computer s) {
s.study();
}
}
第4步:测试运行结果
在测试类中,通过向上转型创建对象,并调用多态方法。
package Cl1;
public class Test {
public static void main(String[] args) {
// 1. 向上转型(自动转型)
Computer cp = new Lenovo();
cp.setName("联想小新");
cp.setPrice(5000);
// 2. 调用重写后的 study 方法
cp.study();
// 3. 多态展现
Apple apple = new Apple();
apple.make(cp);
}
}
以上就是Java封装、继承与多态特性的详细内容,更多关于Java面向对象编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









