Java面向对象的三个特征与含义

我以为只要学过OO软件开发的,就会知道OO的三个最主要的特征:java

1.封装安全

将事物的属性(描述该同一事物的特征)和行为(描述该同一事物的操做)进行统一概括到一个类中,好处是信息隐藏和模块化,提升安全性。ide

封装的主要做用在于对外隐藏内部实现细节,加强程序的安全性。模块化

其中封装后,大体有4种对外公开的修饰符:private;函数

                 (默认)default;编码

                  protected;spa

                  public。orm

这四种分别对封装好后的类进行不一样程度的操做使用。继承

2.继承接口

有些具体的事物可能会有特殊的行为和属性,可是他们均可能属于某一个大事物,这样的事物可让他继承这个大事物,咱们称它为子类,大事物为父类;子类能够继承父类的成员属性和行为,其子类也将拥有父类的全部。


继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、可是子类必须提供实现的能力。


继承的特性: 

        1.单一继承。 

        2.子类只能继承父类的非私有成员变量和方法。 

        3.成员变量的隐藏和方法的覆盖。 


继承主要做用:能够提升代码的复用性


3.多态

从继承的定义,咱们能够很清楚地知道有不少特殊的行为和属性的子类可能都属于某个大事物。可是这个大事物也有一个公共的行为可能与这些特殊的具体子类共有,只是每一个具体的子类的行为可能各尽不一样 (咱们称之为重写,也是运行时多态)。还有一种可能就是这个子类拥有一个公共行为,可是这个子类可能会根据事实状况来作出不一样的行为(咱们称之为重载,也是编译时多态)


重载和覆盖是 java 多态性的不一样表现方式。 


重载是在一个类中多态性的一种表现,是指在一个类中定义了多个同名的 方法,可是他们有不一样的参数个数或有不一样的参数类型。 在使用重载时要注意如下几点: 

        1.重载只能经过不一样的方法参数来区分。例如不一样的参数类型,不一样的 参数个数,不一样的参数顺序。 

        2.不能经过访问权限、返回类型、抛出的异常进行重载。 


覆盖是指子类函数覆盖父类中的函数。 在覆盖时要注意如下几点: 

        1.覆盖的方法的函数名和参数必需要和被覆盖的方法的函数名和参数彻底匹配,才能达到覆盖的效果;

        2.覆盖的方法的返回值必须和被覆盖的方法的返回值类型一致; 

        3.覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者 是其子类; 

        4.被覆盖的方法不能为 private,不然在其子类中只是新定义了一个方法, 并无对其进行覆盖。 

        5. 子类函数的访问修饰权限要大于等于父类的 (public>protected>default>private) 。

        特别注意:Java 中,子类没法覆盖父类的 static 方法或 private 方法。 

相关文章
相关标签/搜索