首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java 种继承

2012-11-01 
java 类继承java 类继承?一、继承的概念???? 将已有的功能加以扩展,实现代码的重复使用???? 现有类成为父类

java 类继承

java 类继承

?

一、继承的概念

???? 将已有的功能加以扩展,实现代码的重复使用

???? 现有类成为父类、基类,衍生出的类称为子类、衍生类

??? java只允许单一继承,要实现多重继承,需要借助于接口。

?

二、继承关系

?

???? ? 父类?????? ? ???????????? 子类

?

??? 成员函数或变量????????? 可继承,public protected 类型的成员可以直接在子类内访问,private类型成员,只能借助父类函数访问

???? 构造函数?????????????????? 不可继承

???? 设定终止继承的成员??? 不可继承,在父类的方法之前加上final关键字,子类方法不能覆盖。

?

三、构造函数的调用顺序

???? 原则:首先调用父类的构造函数,若父类有多个构造函数,默认调用没有参数的构造函数,如果没有无参的构造函数则必须使用super来指定需要调用的构造函数,可以使用super()重载,根据参数的不同选择需要调用的构造函数,super()必须放在第一行执行。

??? 构造函数内使用this() 和super()

??? 1、this()来调用同一类内的其他构造函数,必须放在第一行

??? 2、super()从子类的构造函数调用其父类的构造函数,必须放在第一行。

?

四、覆盖

?子类可以重写父类的成员,以覆盖父类成员,要访问父类成员可以使用super.成员

?

五、终止继承

?

?? 使用final关键字

??? 对类使用,该类不允许有子类

??? 对成员函数,该成员函数不允许被重写

??? 对成员变量,该成员变量不允许被修改

?

六、举例

?

package com;public class JavaHello {public static void main(String ar[]){//由于子类构造函数中super(4),首先调用父类有参数的构造函数, 然后调用子类构造函数       ?CChild cb = new CChild(); //调用父类无参数的构造函数CFather cba = new CFather();cb.play();cb.setColor(4);cba.setColor(2);System.out.println(cb.getColor() + cb.style);System.out.println(cba.getColor());}}//父类class CFather{private int color;     protected int style;public CFather(){System.out.println("父类构造无参");}public CFather(int h){System.out.println("父类构造有参");}public void play(){System.out.println("CBall play");}public void setColor(int color) {this.color = color;}public int getColor() {return color;};}//子类class CChild extends CFather{      //覆盖父类成员变量      ?public int color;public CChild(){super(4);System.out.println("子类构造");this.style = 5;this.play();}}

?

 执行结果:

?

父类构造有参子类构造CBall play父类构造无参CBall play92
?

?

?

?

?

?

?

?

?

热点排行