封装、继承、多态

jAVA 面向对象 三大特性

封装 private

将类的某些信息 隐藏在类的内部,而通过类实现的方法对隐藏的信息进行操作与访问。即 getter/setter方法 去操作 被private修饰的方法。

优点

  • 提高代码的安全性
  • 提高代码复用性

继承 extends

使得子类额外拥有父类的属性和方法,(并且可以在子类中重新定义,这就叫重写)

优点:

  • 提高代码复用性 (抽取相同的内容)
  • 提高代码的维护性 (因为复用性,就可以在复用的地方修改一处,就可以处处改变)

缺点:

使得类与类之前耦合性增强,削弱了子类的独立性

一些其他知识:

子类访问一个变量,先去子类局部范围中查找,如果没有,就去子类成员范围查找,如果还没有,就回去父类成员范围中查找,如果父类也有父类,在父类没有的情况,就回去父类的父类中找。

多态

一个对象的不同形态

前提与体现:

  • 有继承或实现关系
  • 有方法重写
  • 有父类引用指向子类对象 (Animal ani = new Cat()

好处

提高代码的拓展性,也维护了类的独立性

弊端

不能使用子类的特有功能,(只能使用子类重写的内容,例如:Animal ani = new Cat() 因为是接收参数的是父类,不是子类,真正实现功能的是子类,但是编译的对象 仍然是Animal,执行时子类)

一些其他知识:

如何判断类 与 类 是一个类型?

A instance of B