Bootstrap

Java学习笔记封装继承多态

封装继承多态


一、封装

(一)定义

  • 封装是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

(二)实现方式

  • 使用访问修饰符
  • private:被修饰的成员变量或方法只能在本类内部被访问。例如,在一个 Person 类中, private int age; 表示 age 这个变量只能在 Person 类内部被操作。
  • public:可以被任何类访问。通常用于类的公共方法,比如 public void displayInfo() 方法可能用于在外部展示 Person 类的相关信息。
  • protected:可以被同一包内的类以及不同包中的子类访问。

(三)优点

  • 数据安全性
  • 防止外部随意修改数据。例如,银行账户类中的余额属性如果不进行封装,可能会被错误地修改,通过将余额设为 private ,并提供 public 的存取方法(如 deposit 和 withdraw 方法)来保证余额操作的合法性。
  • 提高代码的可维护性
  • 类的内部实现可以独立修改,只要对外的接口不变,不会影响到其他使用该类的代码。比如,修改一个员工类 Employee 中计算工资的内部算法,只要不改变外部调用的工资获取方法 getSalary 的接口,其他依赖 Employee 类的程序不受影响。

二、继承

(一)定义

  • 继承是从已有的类创建新类的机制,新类能够继承已有类的属性和方法。其中,被继承的类称为父类(超类、基类),继承父类的类称为子类(派生类)。

(二)实现方式

  • 通过 extends 关键字实现。例如, class Animal {} 是父类, class Dog extends Animal {} 则表示 Dog 类继承自 Animal 类。

(三)优点

  • 代码复用
  • 子类可以直接使用父类的属性和方法,减少代码冗余。例如, Animal 类有 eat 方法, Dog 类继承 Animal 类后,无需重新编写 eat 方法就可以使用。
  • 类的层次结构清晰
  • 可以建立起一个类的层次体系,便于对复杂的对象关系进行建模。比如,在一个动物分类系统中,动物是父类,哺乳动物、鸟类等是子类,进一步哺乳动物下又有猫、狗等子类,这样可以清晰地描述动物之间的关系。

多态

(一)定义

  • 多态是指在面向对象编程中,不同对象对同一消息(方法调用)做出不同响应的现象。

(二)实现条件

  • 继承
  • 存在父类和子类的继承关系,如上述的 Animal 和 Dog 类。
  • 重写
  • 子类重写父类中的方法。例如, Animal 类有 makeSound 方法, Dog 类重写 makeSound 方法来发出狗叫声, class Dog extends Animal { @Override public void makeSound() { System.out.println(“汪汪”); } }
  • 父类引用指向子类对象
  • 例如, Animal animal = new Dog(); ,这里 animal 是父类 Animal 的引用,但实际指向的是子类 Dog 的对象,当调用 animal.makeSound() 时,会执行 Dog 类中重写后的 makeSound 方法。

(三)优点

  • 提高程序的扩展性和灵活性
  • 可以在不修改现有代码的基础上,增加新的功能。例如,在一个绘图系统中,有一个形状 Shape 类,圆形 Circle 类和矩形 Rectangle 类都继承自 Shape 类。如果有一个绘制方法 draw(Shape shape) ,当需要添加新的形状如三角形 Triangle 类时,只要 Triangle 类继承 Shape 类并实现自己的 draw 方法,原有的 draw 方法就可以处理新的形状,无需大量修改代码。
;