面向对象三大特性
Java面向对象编程有三大特性,它们是封装、继承和多态。
封装:
字面上来说就是将一个东西包裹起来,这样会掩饰掉内部的细节。怎么样?这么一说是不是有点想法。
将类封装起来,只提供想提供的方法接口,而不需要提供具体实现细节,这样一来使得程序更加健壮。
另一方面比方说项目做到一半换人了,老板现在要求吧代码改了,有了封装之后,你完全不用管前人写的烂代码,只需要给出必须
的接口方法,就可以自己写自己的了,修改方便。
怎么封装呢?使用访问修饰符。还记得类的访问修饰符么,只能写public或者默认不写。
在类里面可以使用public、protected、默认不写或者private。这四个修饰符的访问权限越来越低。
还有一种方法,使用内部类。使用内部类能够更好的完成封装,有关内部类的详细介绍,请看下篇文章。
继承:
继承很明显就是从一个已有的类那得到一些东西,能够很好的实现代码的重用性。
被继承的类称之为父类或者超类,继承父类的类称为子类。Java中所有类都是Object类的子类。
另外JAVA中只允许单继承,这样一来避免了多继承带来的代码过度耦合的问题。
虽然不能多继承,但是java中可以实现多个接口,来实现功能的扩展。
多态:
指的是子类对象可以赋值给父类变量,但运行是仍表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可以
表现出多种行为特征。
简单来说,就是程序中同名的不同方法。
那么,怎么实现多态呢?
例如,可以通过子类对父类方法的覆盖实现,还可以通过一个类中方法的重载,还可以通过将子类的对象作为父类的对象实现多
态。
子类将父类方法覆盖,指子类继承了父类的方法,对方法名、参数和类型不做修改,而仅仅改动方法的实现。
这时候调用被覆盖的父类字段和方法时,需使用super关键字。但需要注意,父类中声明为static、final的方法不能被覆盖。
而且声明为final的类的所有方法不允许被覆盖。
另一种实现多态的方法,在类中定义同名但参数不同的方法,包括参数类型不同、参数个数 不同,即方法的重载来实现多态。简单
的例子:
run(int i){}
run(char c){}
run(int i,char c){}
还可以通过对象引用实现多态,具体含义指引用型变量可以指向不同类型的对象
举个例子,公司里有职员和管理两类人,但是管理本身也是职员,也就是管理类继承自职员类。
对于职员类型变量不仅可以表示职员还可以表示管理类对象。
多态大大提高了程序的抽象程度,降低了类和程序模块之间的耦合性,也提高了类模块的封闭性。
由于小编水平有限,如有不足,还请不吝赐教!!!此处也是重点,记下记下。微信搜索关注油墨山公众号,获取更多文章资讯!!!
◆◆油墨未干,为何停下双手!◆◆
感谢关注!
微信号:youmoshan