面向对象的三大特性:封装,继承,多态。
封装
就是将类的实现和使用分开,将内部属性和方法隐藏好,只保留部分接口和方法与外部联系。
在Java中,对象被封装之后会提供四种权限修饰符来提供不同的类进行访问。
访问权限如下表:
权限修饰符 | 同一个类 | 相同包 | 子类 | 其他包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | X |
default | √ | √ | X | X |
private | √ | X | X | X |
继承
子类自动继承父类开放的属性和方法,并可以增加新的属性和方法或对部分属性和方法进行重写,继承提高了代码的可用性。
多态
多态的定义是允许不同类对同一消息作出响应,也就是同一消息根据对象的不同而采取不同的行为方式。
多态有三种表现形式,一种是重载(overload),一种是覆盖(override),还有一种是接口的实现。
-
重载
重载发生在同一类中,跟父类,继承并没有什么关系,是指方法名一样,参数个数不一样,就会引起方法的重载。这种重载实际上是两个不相同的方法,只是方法名字一样,为了代码阅读方便。
-
覆盖
覆盖则是出现在子类继承父类的情况下,子类需要完全改写父类的方法以获得不同的功能。
-
接口的实现
接口的实现可以根据不同类的需求来实现这个接口。
-
总结
所以多态的好处是灵活性和可拓展性。