"黑马程序员"面向对象的三大特性

来源:互联网 发布:mysql intersect 编辑:程序博客网 时间:2024/06/01 16:32

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

        近几天都在学习面向对象,感觉它的思想真的很强大,可能是自己刚接触,所以觉得面向对象很新奇,尤其是面向对象的三大特性:封装,继承,多态。

        封装就是隐藏实现细节,对外提供公共的访问方式,类和方法也是一种封装,private的修饰也是封装的一种体现。private修饰的类中的成员变量和成员方法,只能在本类中被访;一般情况下我们在定义成员变量的时候,还是习惯定义为私有,例如:private String name;private int age等。

        继承就是把多个类中的相同内容提取出来,定义到一个类中,然后让多个类与这个类产生关系,多个类就具备该类的数据了,这种关系就叫做继承。在Java中extends关键字来表示继承,格式为:Class Zi extends Fu {}。Java中类的继承只能是单继承,也可以多层继承。这里有一个注意事项,有继承我们就会考虑到方法重写,子类方法的权限不能低于父类方法的权限,父类私有的方法子类不能重写。还会考虑到构造方法,子类的构造方法都会先去执行父类的构造方法,而且默认执行父类的无参构造方法,主要是用于访问父类数据的初始化,先初始化父类的的数据,再初始化子类的数据。那么,我们使用继承,就是因为有它的好处,提成提高了代码的复用性,让类与类之间产生了一个关系,是多态的前提。下面来举例体现以下继承:

        多态即同一个对象在不同时刻表现出的多种状态,编译时期的状态和运行时期的状态不一致的现象。我们已经知道,多态的前提是继承,当然也会有方法重写,父类的引用指向子类对象;所以多态的格式可以简单定义为Fu f = new Zi();。多态访问的成员特点是:成员变量--编译看父类,运行看父类;成员方法--编译看父类,运行看子类;静态方法--编译看父类,运行看父类。多态的主要好处就是提高了程序的扩展性;但是也有弊端,父类不能直接访问子类特有的,就会考虑到类型转换:向上转型--Fu f = new Zi();向下转型--Zi z = (zi)f;以此来实现对子类特有方法的调用。下面有一个案例来帮助我们更好的体会一下多态:

        以上就是我对面向对象的三大特性的一些理解,面向对象首先还是思想比较重要,需要自己慢慢去体会,去理解它的一些特有的东西。

0 0
原创粉丝点击