A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kingmask 中级黑马   /  2016-4-23 23:54  /  421 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承
好处:  
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来指定调用子类自己的构造方法,那么被调用的构造方法也一样会访问父类中的构造函数。
final特点:
1:这个关键字是一个修饰符,可以修饰类,方法,变量。
2:被final修饰的类是一个最终类,不可以被继承。
3:被final修饰的方法是一个最终方法,不可以被覆盖。
4:被final修饰的变量是一个常量,只能赋值一次。  
抽象类的特点:当多个类中出现相同功能但功能主体不同。这时可以进行向上抽取:只抽取功能定义,不抽取功能主体
1:抽象方法只能定义在抽象类中,抽象类和抽象方法必须由abstract关键字修饰(可以描述类和方法,不可以描述变量)。
2:抽象方法只定义方法声明,并不定义方法实现。抽象类中不一定要有抽象方法,有抽象方法的类必须是抽象类。
3:抽象类不可以被创建对象(实例化)。通过子类对象进行初始化。
4:只有通过子类继承抽象类并重写了抽象类中的所有抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。
5: 抽象类只能单继承。
6:抽象关键字abstract和哪些不可以共存?final , private , static  
注意:在继承中,为什么有些时候选择父类是抽象类?当我们强制要求子类必须完成某些功能的时候。
抽象类的成员特点:
        1、成员变量:可以有成员变量,也可以有常量。
        2、构造方法:有构造方法。用于子类访问父类数据前,对父类数据进行初始化。
3、成员方法:可以有抽象方法,也可以有非抽象方法。抽象方法是为了要求子类做某些事情;非抽象方法是为了提高代码复用性,被子类继承。
模板设计模式:就是利用抽象类
模板设计:新生入学手续办理

点评

不错,不错.  发表于 2016-4-24 07:49

1 个回复

倒序浏览
您需要登录后才可以回帖 登录 | 加入黑马