Java面向对象的三大特征和五大原则

Java面向对象的三大特征

封装

封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性。即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别。

封装目的:增强数据安全性,不能让其他用户随意访问和修改数据,和简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员。

继承

继承(Extend)是指将多个相同的属性和方法提取出来,新建一个父类
Java中一个类只能继承一个父类,且只能继承访问权限非private的属性和方法。 子类可以重写父类中的方法,命名与父类中同名的属性。

继承目的:代码复用。

多态

多态(Polymiorph)可以分为两种:设计时多态和运行时多态。
设计(编译)时多态:即重载(Overrload),是指Java允许方法名相同而参数不同(返回值可以相同也可以不相同)。在同一个类中,允许存在一个或一个以上的同名函数,只要参数类型或参数个数不同即可。
运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用哪个方法。

多态目的:增加代码的灵活度。

总结归纳

1.Java中应尽量减少继承关系,以降低耦合度。

2.使用多态时,父类在在调用方法时,优先调用子类的方法。如果子类没有重写父类的方法,则再调用父类的方法。

3.Java访问控饰符作用范围表:

  本类 本包 子类 外部包
public
protected X
default X X
private X X X

符号含义, ✓:可以访问   X:不可访问

protected java.lang.Object.clone()方法,在一个类中调用另一个类的clone方法提示 ‘clone()’ has protected access in 'java.lang.Object'

 

 错误是因为:另一个类中的clone()方法继承自Object方法。而这个继承的clone()方法只能在另一个类中使用。

而当前调用类和另一个类不存在继承关系,所以不能调用另一个类的clone()方法。

Java面向对象的五大特征

1.单一职责原则:一个类,最好只做一件事,只有一个引起它变化。也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。

2.开放封闭原则:对扩展开发,对修改封闭。

3.里氏替换原则:子类必须能够替换其基类。里氏替换原则中说,任何基类可以出现的地方,子类一定可以出现。

4.依赖倒置原则:依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

5.接口隔离原则:使用多个小的专门接口,而不是使用一个大的接口。

 

posted @ 2019-10-26 08:38  Lints林芝  阅读(650)  评论(0编辑  收藏  举报