java11 OOP繼承實(shí)例 2022-02-07

//繼承實(shí)例
import java.util.Arrays;
public class Test1 {
    public static void main(String[] args) {
        CosmeticManager cm1 = new CosmeticManager();
        cm1.add(new Cosmetic("shizendo","import",1000));
        cm1.add(new Cosmetic("香奈兒","import",900));
        cm1.add(new Cosmetic("sk2","import",1500));
        cm1.add(new Cosmetic("dabao","domestic",100));
        cm1.printAll();
        System.out.println("====================");
        SortCosmeticManager cm = new SortCosmeticManager();
        cm.add(new Cosmetic("shizendo","import",1000));
        cm.add(new Cosmetic("香奈兒","import",900));
        cm.add(new Cosmetic("sk2","import",1500));
        cm.add(new Cosmetic("dabao","domestic",100));
        cm.printAll();
        System.out.println("====================");
        ImportCosmeticManager cm2 = new ImportCosmeticManager();
        cm2.add(new Cosmetic("shizendo","import",1000));
        cm2.add(new Cosmetic("香奈兒","import",900));
        cm2.add(new Cosmetic("sk2","import",1500));
        cm2.add(new Cosmetic("dabao","domestic",100));
        cm2.printAll();
    }
}
//化妝品類
class Cosmetic{
    private String name;
    private String type;
    private int price;
    public Cosmetic() {}
    public Cosmetic(String name, String type, int price) {
        this.name = name;
        this.type = type;
        this.price = price;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public String getInfo(){
        return "name="+name+"type="+type+"price="+price;
    }
}
//化妝品管理類
class CosmeticManager{
    protected Cosmetic[] cs=new Cosmetic[4];//子類需要所以用protected,如果還用private需要Getter Setter方法,代碼量多
    protected int count=0;//子類需要所以用protected,如果還用private需要Getter Setter方法,代碼量多
    //進(jìn)貨功能
    public void add(Cosmetic c){
        int size=cs.length;
        if(count>=size){
            int newLen=size*2;
            cs=Arrays.copyOf(cs,newLen);
        }
        cs[count]=c;
        count++;
    }
    //輸出所有產(chǎn)品
    public void printAll(){
        for (int i = 0; i < count; i++) {
            System.out.println(cs[i].getInfo());
        }
    }
}
//可按單價排序的化妝品管理類
class SortCosmeticManager extends CosmeticManager{
    //排序輸出所有產(chǎn)品(重寫父類方法)
    public void printAll(){
        Cosmetic[] temp=Arrays.copyOf(cs,count);
        //冒泡排序
        Cosmetic c=null;
        for (int i = 0; i < temp.length; i++) {
            for (int j = 0; j < temp.length-i-1; j++) {
                if(temp[j].getPrice()>temp[j+1].getPrice()){
                    c=temp[j];
                    temp[j]=temp[j+1];
                    temp[j+1]=c;
                }
            }
        }
        //foreach循環(huán)輸出數(shù)組
        for(Cosmetic cosmetic:temp){
            System.out.println(cosmetic.getInfo());
        }
    }
}
//篩選出進(jìn)口化妝品
class ImportCosmeticManager extends CosmeticManager{
    //輸出所有產(chǎn)品
    public void printAll(){
        //比較兩個字符串的值不能使用==
        for (int i = 0; i < count; i++) {
            if("import".equals(cs[i].getType())){
                System.out.println(cs[i].getInfo());
            }
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容