面向对象的三大特性

  • 继承
一个类继承另一个类 具有其属性和不小于protected权限方法
如  创建一个动物类  动物都具有共性   就是年龄 种类
这是所有动物的共性   任何动物都具有的
public class  Animal{
  private   int  age;
 private   String  type;
 }

如果  创建 多个动物类 每次都要声明这两个属性  而如果都继承了这个动物类  就不用再显式声明这两个属性   就具有这两种属性   这就降低了代码的重复性  子类也可以有自己特有的方法 跟属性   以实现功能的扩展

public class Fish extends Animal {
    private String  scale;
}
 

如果父类中 只有默认的无参数构造   子类  的构造函数 中可以不写super();
一旦父类中 有参构造     子类必须对父类的有参构造进行显示声明 super(...);
父类一般给子类提供访问其私有属性的方法   或者其他一些public 标识的功能性方法
父类中如果有抽象方法 子类必须对其进行实现而且  其作用域必须不小于原来声明的作用域   子类也可以复写父类的可以访问的方法   比如常见的 改写的  toString 方法    就是 改写所有类的父类 Object的 方法
 
一个接口继承另一个接口 或者一个接口继承多个个接口
java的多接口继承是对 类只能单继承的一种补充

  • 封装
封装 是隐藏了功能的实现细节   比如 对数据   和基于数据的相关操作   只提供对外调用该功能实现的接口  因为隐藏了实现细节  所以增加了数据的安全性   同时因为对外只展现了功能的实现  所以实现了专业的分工   模块化       降低了耦合度  和易用性 不必理解功能实现的原理  简化了开发    
  • 多态  
相同的事物,调用其相同的方法,参数也相同时,但表现的行为却不同。

多态存在的条件    必须有类的继承关系   必须有重写    父类引用指向 子类对象

此时子类的私有属性和方法 不能使用   此时父类调用 某个被子类改写的方法时    可以使用父类的同名方法  也可以使用子类的同名方法  实现的结果 可能是不同的 这就表现出了多态  多态在开发z


博主:码农小胖哥
出处:felord.cn
本文版权归原作者所有,不可商用,转载需要声明出处,否则保留追究法律责任的权利。如果文中有什么错误,欢迎指出。以免更多的人被误导。
原文地址:https://www.cnblogs.com/felordcn/p/12142608.html