Java 面向對象:繼承,構造器參數super()

package com.neusoft.override;

/**
 * super:可以調用父類中的資源
 * 1.  super.屬性名
 * 2.  super.方法名
 * 3.  super()表示調用父類中構造器
 * 
 * 注意:如果子類繼承了父類,父類中定義了一個有參數的構造器,此時子類就找不到父類中無參數的構造器了。編譯器就會報錯
 * 解決的方法:
 * 1.在父類中創建一個無參數的構造器
 * 2.在子類中也定義一個有參數的構造器並且在這個構造器中通過super(參數1,參數2)去調用父類中有參數的構造器
 *
 */

import org.omg.CORBA.PUBLIC_MEMBER;

class D {
	int i = 1;
	public D(){//S1.父類構造無參數方法
		
	}
	public D(int a, String b) {//P2.父類本有參數
		System.out.println("");
	}

	public void test_d() {
		System.out.println("test_d ...");
	}
}

class E extends D {

	public E(int a, String b) {//P1.子類本無參數
		super(a, b);//S2.子類構造有參函數,並在第一行用super(含參)
		System.out.println("11111111111");
	}

	int i = 2;

	public void test_e() {
		super.test_d();
		System.out.println("1");
	}
}

public class SuperDemo {
	public static void main(String[] args) {
		E e = new E(1,"2");//11111111111
		e.test_e();//test_d ...	1
	}
}
package com.neusoft.animal;

import javax.xml.bind.SchemaOutputResolver;

public abstract class Animal {
	private String name;
	private int legNum;

	public Animal() {

	}

	public Animal(String name, int legNum) {
//		this.name = name;
//		this.legNum = legNum; //初值,用get、set可以不寫
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getLegNum() {
		return legNum;
	}

	public void setLegNum(int legNum) {
		this.legNum = legNum;
	}

	public abstract void shout();
}

package com.neusoft.animal;

public class Cat extends Animal{
	
	public Cat(String name,int legNum){
		super(name, legNum);
	}
	
	public void shout(){
		System.out.println("miaomiao ... ");
	}
}

package com.neusoft.animal;

public class Duck extends Animal {

	public Duck(String name, int legNum) {
		 super(name, legNum);
	}

	public void shout() {
		System.out.println("gaga ... ");
	}
	public static void main(String[] args) {
		Animal animal1 = new Duck("tom", 2);
		animal1.shout();
		Animal animal2 = new Cat("tom123", 4);
		animal2.shout();
		
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章