黑马程序员技术交流社区

标题: 面向对象特性 [打印本页]

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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2