黑马程序员技术交流社区
标题: 面向对象特性 [打印本页]
作者: Normandy1943 时间: 2015-3-19 23:33
标题: 面向对象特性
三大特性:
一 封装:★★★★★
概念:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:1、将变化隔离;2、便于使用;3、提高重用性;4、安全性。
封装原则:将不需要对外提供的内容都隐藏起来,提供公共方法对其访问。
二 继承 ★★★★★
好处:
1、让类与类之间产生了关系,提高了代码的复用性。2、 提供了另一个特征多态的前提。
特点:1、java只支持单继承,不支持多继承,但java保留这种机制,并用另一种体现形式来完成表示:多实现
2、java支持多层继承:B继承A、C继承B
子父类中变量的特点:
如果子类中出现非私有的同名变量时,子类要访问本类变量用:this,访问父类变量用:super
this和super的使用:
1、成员变量:this.变量名------表示当前类的变量 super.变量名----父类的变量
2、用在构造方法中:this(参数)----本类的构造方法 super(参数)----父类的构造方法
3、用在成员方法中:this.方法名()----本类的方法 super.方法名()-----父类的方法
子父类中函数的特点:
1、当子类出现和父类一模一样的函数时,父类中的函数会被子类的函数所覆盖
2、子类覆盖父类,必须保证子类权限大于父类权限
重载:同一个类中,方法名相同,参数列表不同,与返回值类型无关。
重写(覆盖):子父类中,方法名、返回值、参数列表都相同。
什么时候用重写?或者说为什么要用重写?或者说重写的应用?
重写存在于子父类中,当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法,
这样既沿袭了父类的功能,又定义了子类特有的功能。
子父类方法重写注意的问题:
1、父类中的方法不可以被重写。
2、子类方法访问权限一定要大于等于父类方法访问权限。
3、静态方法只能被静态方法重写。
注意:
子类中所有的构造方法都会默认访问父类中的无参构造方法,因为每一个子类构造内第一行都有默认的语句super();
为什么?因为子类会自动具备父类中非私有的数据,那么这个数据的初始化靠父类来完成。所以,会先调用父类的构造方法对数据进行初始化。
如果父类中没有无参构造方法,那么子类的构造方法内,必须通过super语句指定要访问的父类中的构造方法。
如果子类构造方法中用this来指定调用子类自己的构造方法,那么被调用的构造方法也一样会访问父类中的构造函数。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |