1. 程式人生 > >Java--父類的引用指向子類的對象詳解!

Java--父類的引用指向子類的對象詳解!

show 小明 一個 oid void get color system eight

例:

  第一步.創建一個Person類

package com.maya.ball;

public class Person {
    private int age;
    private String name;
    
    public Person(int age,String name){
        this.age = age;
        this.name = name;
    }
    
    public void speak(){
        
    }
    public int getAge(){
        return age;
    }
    
public void setAge(int age){ this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

  第二步.創建American類繼承Person類。

package com.maya.basketball;

import com.maya.ball.Person;

public class American extends
Person { public double height;-----------------------------新增成員變量 public American(int age,String name,double height){ super(age, name); this.height = height; } public void speak(){ System.out.println("我年齡:"+ this.getAge() +",我叫:"+getName()+",我身高:"+height); } }

  第三步.創建Chinese類,同意繼承Person類

package com.maya.football;

import com.maya.ball.Person;

public class Chinese extends Person{

    private String sex;-------------------新增成員變量
    
    public Chinese(int age, String name,String sex) {
        super(age, name);
        this.sex = sex;
    }
    
    public void speak(){
        System.out.println("我年齡:"+ getAge() +",我叫:"+ this.getName() +",我性別:"+sex);
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

  第四步.創建Test1類,通過show方法把Person的對象作為參數傳進去

package com.maya.test;

import com.maya.ball.Person;
import com.maya.basketball.American;
import com.maya.football.Chinese;

public class Test1 {
    public void show(Person per){
        if(per instanceof American){
            American am = (American) per;
            System.out.println(am.height);
        }
        if(per instanceof Chinese){
            Chinese ch = (Chinese) per;
            System.out.println(ch.getSex());
        }
    }
}

  第五步.創建Main方法進行調用

package com.maya.test;

import com.maya.ball.Person;
import com.maya.basketball.American;
import com.maya.football.Chinese;

public class Main1 {
    public static void main(String[] args){
        Person per = new American(32,"小明",175);
        American american = (American) per;
        double s = american.height;
        System.out.println(s);
        
        Person ame = new American(32,"小明",180);
        ame.speak();
        Person chinese = new Chinese(23,"小李","女");
        chinese.speak();
        Test1 t = new Test1();
        t.show(ame);
        t.show(chinese);
        
    }

}

Java--父類的引用指向子類的對象詳解!