继承示例

/**
    继承的应用示例
实现一个化妆品商城中的化妆品管理
1、定义一个化妆品类( Cosmetic)
2、定义一个化妆品管理类(CosmeticManager)
   (1)实现进货功能
   (2)可以输出所有化妆品信息功能
3、使用继承实现一个可按单价排序输出所有化妆品的功能
4、使用继承实现一个只输出进口化妆品的功能
*/

public class Test2 {
    public static void main(String[]args){
        ImportCosmeticManager cm = new ImportCosmeticManager();
        cm.add(new Cosmetic("香奈儿","进口",1500));
        cm.add(new Cosmetic("圣罗兰","进口",1300));
        cm.add(new Cosmetic("娇韵诗","进口",1200));
        cm.add(new Cosmetic("兰蔻","进口",1000));
        cm.printInfo();
        
    }
}

//可输出进口化妆品的管理类
class ImportCosmeticManager extends CosmeticManager{
    public void printInfo(){
        //比较两个字符串的值是否相等,不能使用==,使用equals()
        for(int i=0;i<count;i++){
            if("进口".equals(cs[i].getType())){
                System.out.println(cs[i].getInfo());
            }
        }
    }
}
//可按单价排序的化妆品管理类
class SortCosmeticManager extends CosmeticManager{
    //排序输出所有产品
    public void printInfo(){
        Cosmetic[] temp = java.util.Arrays.copyOf(cs,count);
        System.out.println(temp.length);
        
        Cosmetic c = null;
        for(int i=0;i<temp.length-1;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;
                }
            }
            
        }
        for(Cosmetic cosmetic: temp){
            System.out.println(cosmetic.getInfo());
        }
        
    }
}
//化妆品管理类
class CosmeticManager{
    
    protected Cosmetic[] cs = new Cosmetic[4];
    protected int count =0;
    //进货功能
    public void add(Cosmetic c){
        int size = cs.length;
        if(count>=size){
            int newLen = size*2;
            cs = java.util.Arrays.copyOf(cs,newLen);
        }
        cs[count] = c;
        count++;
    }
    
    //输出所有产品
    public void printInfo(){
        for(int i=0;i<count;i++){
            System.out.println(cs[i].getInfo());
        }
    }
}

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 void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setType(String type){
        this.type = type;
    }
    public String getType(){
        return type;
    }
    public void setPrice(int price){
        this.price = price;
    }
    public int getPrice(){
        return price;
    }
    public String getInfo(){
        return "name="+name+",type="+type+",price="+price;
    }
}
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容