java 类继承

java 类继承

一、继承的概念

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

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

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

二、继承关系

       父类                      子类

扫描二维码关注公众号,回复: 835339 查看本文章

    成员函数或变量          可继承,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 play
9
2
 

 

 

 

 

 

 

猜你喜欢

转载自mylir.iteye.com/blog/1049800