Java面向对象之继承和重写
来源:互联网 发布:生肖 知乎 编辑:程序博客网 时间:2024/04/23 20:49
继承和重写
今天学习了继承与继承中的重写方法,并且做了小例子,主要是运用了JAVA的一些基本知识,主要是继承和方法的改写,还用到了之前的排序方法。这个小程序是描述了对于化妆品的进货(添加化妆品的种类或者和数量)以及展示现有的化妆品种类以及价格(价格按照从小到大排序)。
- 首先是建立一个化妆品类和一个化妆品管理类,在管理化妆品类中,如果空间不够就要进行空间的扩展
//化妆品类class CosmeticType { private String name; private float price; private String type; public CosmeticType(String name, float price, String type) { super(); this.name = name; this.price = price; this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public String getType() { return type; } public void setType(String type) { this.type = type; } //得到化妆品信息 public String getInfo(){ return "The name of Cosmetic is " + name + " price is " + price + " The type is " + type; }}//化妆品管理类class CosmeticManager{ //protected 才可以继承 protected CosmeticType[] cosmetics = new CosmeticType[4]; protected int count = 0; //化妆品进货 public void add(CosmeticType cos){ //如果长度不够就扩展空间 if(count > cosmetics.length){ //将空间增加一半 int newLen = cosmetics.length*3/2+1; //将原来的信息复制到新的空间中 cosmetics = Arrays.copyOf(cosmetics, newLen); } //将添加的cos(一个cosmetic对象)赋值给 最后一个位置 cosmetics[count] = cos; count++; } //输出所有化妆品 public void printInfo(){ for(int i = 0; i < count; i++){ System.out.println(cosmetics[i].getInfo()); } }}
2 . 测试输出一下所有的化妆品
public class Cosmetic{ public static void main(String[] srgs){ CosmeticManager cm = new CosmeticManager(); cm.add(new CosmeticType("大宝", 8.0f, "China")); cm.add(new CosmeticType("Olay", 260.0f, "America")); cm.add(new CosmeticType("郁美净", 12.0f, "China")); cm.add(new CosmeticType("Lancome", 450.0f, "France")); cm.printInfo(); }}
基本的类已经构造完成,也可以输出,接下来进行继承和改写部分,在继承时,要确保父类中的属性和方法是protected或者是public,只有这样才能被子类继承。
1.首先写一个继承化妆品管理类的子类,来实现将化妆品按价格从小到大输出
class SortCosmeticManager extends CosmeticManager{ //重写了父类的打印方法,实现了排序 public void printInfo(){ CosmeticType[] cs = new CosmeticType[super.count]; for(int i = 0; i < cs.length; i++){ cs[i] = super.cosmetics[i]; } CosmeticType temp = null; for(int i = 0; i < cs.length-1; i++){ for(int j = 0; j < cs.length-1-i; j++){ if(cs[j].getPrice() >cs[j+1].getPrice()){ temp = cs[j]; cs[j] = cs[j+1]; cs[j+1] = temp; } } } for(int i = 0; i < count; i++){ System.out.println(cs[i].getInfo()); } }}
2.测试按价格输出化妆品
public class Cosmetic{ public static void main(String[] srgs){ SortCosmeticManager cm = new SortCosmeticManager(); cm.add(new CosmeticType("大宝", 8.0f, "China")); cm.add(new CosmeticType("Olay", 260.0f, "America")); cm.add(new CosmeticType("郁美净", 12.0f, "China")); cm.add(new CosmeticType("Lancome", 450.0f, "France")); cm.printInfo(); }}
3.然后再写一个继承化妆品管理类的子类,实现只输出国产化妆品
//只输出国产化妆品class ImportCosmeticManager extends CosmeticManager{ public void printInfo(){ for(int i = 0; i < super.count; i++){ if("China".equals(super.cosmetics[i].getType())){ System.out.println(cosmetics[i].getInfo()); } } }}
4.测试输出国产化妆品
public class Cosmetic{ public static void main(String[] srgs){ ImportCosmeticManager cm = new ImportCosmeticManager(); cm.add(new CosmeticType("大宝", 8.0f, "China")); cm.add(new CosmeticType("Olay", 260.0f, "America")); cm.add(new CosmeticType("郁美净", 12.0f, "China")); cm.add(new CosmeticType("Lancome", 450.0f, "France")); cm.printInfo(); }}
程序到此结束,所有的功能都已实现。
3 0
- Java面向对象之继承和重写
- java--面向对象之继承4(重写和重载)
- Java面向对象之重载和重写
- java面向对象的继承以及方法重写和重载
- JAVA面向对象2-静态;继承;重写
- Php面向对象 – 继承和重写
- 面向对象:继承、重写和多态
- java学习之旅40--面向对象_13_继承_Object类用法_toString和equals方法_重写toString
- Java面向对象编程之重载(overload)和重写(override)
- JAVA-面向对象之继承
- Java面向对象之继承
- java面向对象之继承
- Java面向对象之继承
- Java面向对象之继承
- Java面向对象之继承
- Java面向对象之继承
- java面向对象之继承
- JAVA面向对象之继承
- 正则表达式验证
- 更换ADFS3.0的SSL 证书
- POJ 3067.Japan【树状数组】【5月11】
- 开发Android硬件驱动程序-开发android硬件抽象层模块
- 一致性hash算法(consistenthashing)
- Java面向对象之继承和重写
- hive union
- 深入理解Java的接口和抽象类
- margin:0 auto 与 text-align:center 的区别
- 简单工厂模式
- Android开发笔记(九十九)圆形转盘
- 文章标题
- Busybox下init详解
- 微信支付开发-从零开始-Part4