Java之封装、继承、多态(重载、重写)

本文深入探讨了面向对象编程的三大核心特性:封装、继承和多态。通过实例解析了封装如何保护数据,继承如何复用代码,以及多态如何实现灵活的代码设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 面向对象编程三大特性:封装、继承、多态

封装把对象的属性和操作(或服务)结合为一个独立的整体,使得对数据的访问只能通过接口。


继承从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

例如  定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。 轿车和卡车都包含有车原先的属性和行为,又扩展了各自装东西的箱子。这时称 轿车与卡车继承了车。


多态:允许不同类的对象对同一消息做出响应。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。这也意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。

多态的实现方式接口实现,继承父类进行方法重写,同一个类中进行方法重载。

方法重载(Overloading):一个类中有多个方法(函数),它们具有相同的名字,但方法传递的参数或参数的个数不同,返回类型可以相同。

                例子:

                  public class Person

                  {

                     int children;

                     public Person()

                     {

                      this.getChilren(1);//赋值children为1

                      this.getChilren();//返回true

                      }

                     public void getChildren(int children)

                     { 

                       this.children=children;

                      }   

                      public boolean getChildren()

                       {

                        if(children!=0)

                         return true;

                        else return false;

                        }

                  }                              


  方法重写(Override): 子类对父类的方法做一定的修改返回值和形参都不能改变。又称方法覆盖。
 






<think>嗯,用户想了解Java中的封装继承多态的概念及用法,还要求示例。首先我得回忆这三个核心OOP概念。封装应该隐藏数据有关,通过访问修饰符来实现,比如private变量,然后提供gettersetter方法继承的话,是子类继承父类的属性方法,extends关键字,可能还要提到方法重写多态的话,应该涉及父类引用指向子类对象,还有方法重载重写。 然后用户给的引用资料里提到,引用1到5都有相关的内容,可能需要结合这些引用中的内容来组织回答。比如引用4提到继承是分等级层次的类,允许子类继承父类的特征行为。引用5说多态是向上转型的过程,父类类型变量指向子类实例。这些都需要整合到回答中。 接下来需要结构清晰,分点解释每个概念,给出定义、作用、示例代码。可能每个概念下还要分小点,比如封装的作用包括数据保护简化使用。继承要注意单继承,还有super关键字的使用。多态分为编译时多态方法重载运行时多态方法重写)。 示例代码方面,封装的话,可以写一个Person类,私有nameage,提供公共方法访问。继承的例子可以是Student继承Person,添加grade属性。多态可以用Animal类,DogCat继承重写eat方法,然后用父类引用调用。 还要注意用户提到的引用标识,比如在提到继承的时候引用资料里的内容,比如引用43,可能需要标注。但用户给的引用内容有些可能问题不太直接相关,比如引用12比较泛泛,而引用3、4、5更具体,需要合理引用。 最后生成相关问题,可能包括每个概念的优缺点,实际应用中的例子,或者多态重载重写的关系等。确保问题符合用户需求,帮助进一步学习。 检查有没有遗漏,比如是否每个概念都有示例,是否涵盖了使用场景,是否引用了正确的资料。比如多态部分提到向上转型,引用5里的内容需要标注。确保代码正确,比如Java语法正确,访问修饰符使用正确,没有语法错误。然后组织语言,用中文清晰表达,避免术语混淆。</think>### Java面向对象三大特性解析 #### 一、封装(Encapsulation) **定义**:通过访问控制修饰符隐藏对象内部细节,仅暴露必要接口$^{[^4]}$ **作用**: 1. 防止数据被意外修改(如用`private`保护字段) 2. 简化调用方的使用复杂度 3. 实现数据校验逻辑集中管理 **示例**: ```java public class BankAccount { private double balance; // 私有化字段 public void deposit(double amount) { // 暴露安全操作方法 if(amount > 0) balance += amount; } public double getBalance() { // 提供受控访问 return balance; } } ``` #### 二、继承(Inheritance) **定义**:子类通过`extends`继承父类特征,形成层次化类结构$^{[^3][^4]}$ **特性**: 1. 单继承原则(Java不支持多继承) 2. 支持方法重写(`@Override`) 3. 通过`super`调用父类构造方法 **示例**: ```java class Animal { // 父类 void eat() { System.out.println("动物进食"); } } class Cat extends Animal { // 子类继承 @Override void eat() { System.out.println("猫吃鱼"); // 方法重写 } } ``` #### 三、多态(Polymorphism) **定义**:同一操作作用于不同对象时产生不同行为$^{[^5]}$ **实现方式**: 1. 编译时多态方法重载(Overload) 2. 运行时多态:向上转型+方法重写 **示例**: ```java Animal a = new Cat(); // 向上转型(多态核心) a.eat(); // 输出"猫吃鱼" // 方法重载示例 class Calculator { int add(int a, int b) { return a+b; } double add(double a, double b) { return a+b; } // 参数类型不同 } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值