java封装继承和多态知识总结

博客介绍了多态的调用规则,使用多态调用方法时,先检查父类有无该方法,无则编译错误,有则调用子类同名方法。还提到多态的好处,能让程序有良好扩展,可对所有类对象进行通用处理。

多态

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

### 封装 封装是面向对象编程的核心特性之一,其主要作用是隐藏对象的内部实现细节,仅对外暴露必要的接口。通过封装,可以提高代码的模块化程度,增强数据的安全性完整性[^2]。例如,Java 中可以通过访问修饰符(如 `private`、`protected` `public`)控制类成员的可见性。一个典型的封装示例是将类的字段设为 `private`,并通过公共的 `getter` `setter` 方法访问修改这些字段: ```java public class Person { private String name; private int age; 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; } } ``` ### 继承 继承是面向对象编程中实现代码复用的重要机制,允许一个类(子类)继承另一个类(父类)的属性方法。通过继承,可以构建清晰的类层次结构,提高代码的可维护性可扩展性[^3]。在 Java 中,使用 `extends` 关键字实现继承。子类可以重写父类的方法以实现不同的行为。例如: ```java class Animal { public void makeSound() { System.out.println("动物发出声音"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("狗汪汪叫"); } } ``` 此外,Java 仅支持单继承,即一个类只能直接继承一个父类。但可以通过实现多个接口来实现多继承的效果[^4]。 ### 多态 多态是指同一个接口可以有不同的实现方式,具体的行为取决于对象的实际类型。多态增强了代码的灵活性扩展性,使得程序能够以统一的方式处理不同类型的对象[^2]。在 Java 中,多态通常通过方法重写(动态绑定)接口实现来体现。例如: ```java Animal myAnimal = new Dog(); myAnimal.makeSound(); // 输出 "狗汪汪叫" ``` 在上述代码中,尽管变量 `myAnimal` 的类型是 `Animal`,但它实际指向的是 `Dog` 类的实例,因此调用的是 `Dog` 类的 `makeSound` 方法。 ### 组合继承的关系 除了继承,组合也是实现代码复用的一种方式。组合是指在一个类中包含另一个类的对象作为其成员变量,从而利用该对象的功能。继承相比,组合更加灵活,因为可以在运行时动态改变对象的行为[^4]。例如: ```java class Engine { public void start() { System.out.println("引擎启动"); } } class Car { private Engine engine; public Car(Engine engine) { this.engine = engine; } public void start() { engine.start(); System.out.println("汽车启动"); } } ``` 在实际开发中,应根据具体需求选择继承或组合来设计类之间的关系,以实现高效、灵活易于维护的软件系统[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值