封装 继承 多态

(一)封装

封装是面向对象三大特征之一(封装、继承、多态)

是指将客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法实现对隐藏信息的操作和访问,成员变量private,提供对应的getXxx/setXxx()方法
封装的好处
①通过方法控制成员变量的操作,提高了代码的安全性
②把代码用方法进行封装,提高了代码的复用性

(二)继承

继承面相对象三大特征之一,可以使子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法
继承
继承的格式:public class 子类名 extends 父类名{}
父类(基类、超类)
子类(派生类)

继承中子类的特点:
子类可以有父类的内容
子类还可以有自己特有的内容
在Java中,子类可以直接使用父类的方法,前提是这些方法必须是被声明为publicprotected。如果父类的方法是publicprotected访问修饰符,则子类可以直接调用这些方法。如果父类的方法是private访问修饰符,则子类无法直接调用这些方法。

另外,如果父类的方法被子类重写(override),那么子类将使用自己的方法实现,而不是父类的方法。如果子类想要调用父类被重写的方法,可以使用super关键字来调用父类的方法。

总的来说,子类可以直接使用父类的方法,但需要注意方法的访问修饰符和是否被重写。
好处和弊端:
好处:
①提高了代码的复用性(多个类相同的成员可以放到同一个类中)
②提高了代码的维护性(共通的方法可以放于父类中统一修改)
弊端:
继承让类于类之间产生了关心,类的耦合性增强了,父类发生变化时子类也不得不跟着变化,削弱了子类的独立性

(三)多态

同一对象,在不同时刻表现出来的不同形态
(是指对应同一个命令[调用同一个名称的方法],不同的对象给予不同的反应。)

多态的前提和体现:
①有继承/实现关系
②有方法重写
③有父类引用a指向子类对象 Animal a = new Cat();
(子类对象实例化)

多态的形式:具体类多态,抽象类多态,接口多态
   多态的前提:有继承/实现关系
      有方法重写;
      有父(类/接口)引用指向(子/实现)类对象

多态中成员的访问特点
Animal a = new Cat();
虽然内存中的对象是Cat,但是外界看到的是Animal这个引用
通过多态访问成员变量,访问的是父类中的,编译和运行都看左边
多态形式访问成员方法,编译看左边,运行看右边

成员变量:编译、执行都看左边
成员方法:编译(调用)看左边、执行看右边
    访问成员方法的编译要看左边
(成员方法有重写,而成员变量没有)

多态的好处和弊端

好处:提高了程序的扩展性
(定义方法的时候,使用父类型作为参数,使用具体的子类型参与操作)
弊端:不能使用子类的特有功能

多态中的转型

向下转型帮助使用子类中的特有功能

向上转型:
从子到父
父类引用指向子类对象
向下转型:
从父到子
父类引用转为子类对象

1
2
Animal a = new Cat(); //向上转型
Cat c = (Cat)a; //向下转型
Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2023-2025 Annie
  • Visitors: | Views:

嘿嘿 请我吃小蛋糕吧~

支付宝
微信