继承的应用
课程大纲
一、 定义一个内衣商城中的内衣管理
1、 定义一个内衣类
2、 定义一个内衣管理类(实现进货管理和输出所有内衣信息功能)
3、 使用继承实现一个可按单价排序输出所有内衣功能
4、 使用继承实现一个只输出女士内衣的功能
import java.util.Arrays;
/**
内衣管理
*/
/**
内衣管理
*/
class ExtendsDemo
{
public static void main(String[] args)
{
Underwear u1 = new Underwear("背心","男士",35.5f);
Underwear u2 = new Underwear("胸垫","女士",50.5f);
Underwear u3 = new Underwear("内裤","男士",135.5f);
Underwear u4 = new Underwear("内裤","女士",235.5f);
Underwear u5 = new Underwear("bra","女士",355.5f);
/*UnderwearManager um = new UnderwearManager();
um.add(u1);
um.add(u2);
um.add(u3);
um.add(u4);
um.add(u5);
Underwear[] us = um.getUnderwears();//返回的是数组
for(Underwear u:us )
{
System.out.println(u.getInfo());
}
*/
/*
System.out.println("---------排序子类------------");
PriceSortUnderwearManager um1 = new PriceSortUnderwearManager();
um1.add(u1);
um1.add(u2);
um1.add(u3);
um1.add(u4);
um1.add(u5);
Underwear[] us = um1.getUnderwears();//返回的是数组
for(Underwear u:us )
{
System.out.println(u.getInfo());
}
*/
System.out.println("-------------女士内衣子类----------------");
WomanUnderwearManager wm = new WomanUnderwearManager();
wm.add(u1);
wm.add(u2);
wm.add(u3);
wm.add(u4);
wm.add(u5);
Underwear[] us = wm.getUnderwears();
for(Underwear u: us){
System.out.println(u.getInfo());
}
{
public static void main(String[] args)
{
Underwear u1 = new Underwear("背心","男士",35.5f);
Underwear u2 = new Underwear("胸垫","女士",50.5f);
Underwear u3 = new Underwear("内裤","男士",135.5f);
Underwear u4 = new Underwear("内裤","女士",235.5f);
Underwear u5 = new Underwear("bra","女士",355.5f);
/*UnderwearManager um = new UnderwearManager();
um.add(u1);
um.add(u2);
um.add(u3);
um.add(u4);
um.add(u5);
Underwear[] us = um.getUnderwears();//返回的是数组
for(Underwear u:us )
{
System.out.println(u.getInfo());
}
*/
/*
System.out.println("---------排序子类------------");
PriceSortUnderwearManager um1 = new PriceSortUnderwearManager();
um1.add(u1);
um1.add(u2);
um1.add(u3);
um1.add(u4);
um1.add(u5);
Underwear[] us = um1.getUnderwears();//返回的是数组
for(Underwear u:us )
{
System.out.println(u.getInfo());
}
*/
System.out.println("-------------女士内衣子类----------------");
WomanUnderwearManager wm = new WomanUnderwearManager();
wm.add(u1);
wm.add(u2);
wm.add(u3);
wm.add(u4);
wm.add(u5);
Underwear[] us = wm.getUnderwears();
for(Underwear u: us){
System.out.println(u.getInfo());
}
}
}
/**
内衣类
*/
class Underwear
{
float price;
String name;
String sex;
public Underwear(String name,String sex,float price)
{
this.name = name;
this.sex = sex;
this.price = price;
}
public String getInfo()
{
return name+sex+",RMB:"+price;
}
}
/**
内衣管理类
*/
class UnderwearManager
{
private Underwear[] underwears = new Underwear[3];
private int count ;//记录当前的内衣数量,计数器
//添加内衣的功能
public void add(Underwear u)
{
if(count>=underwears.length)
{
int newlen = (underwears.length*3)/2 + 1;
underwears = Arrays.copyOf(underwears,newlen);
}
underwears[count] = u;
count++;
}
//输出所有的内衣信息
public Underwear[] getUnderwears()
{
Underwear[] us = new Underwear[count];
for(int i = 0;i<us.length;i++)
{
us[i] = underwears[i];
}
return us;
}
}
//实现按单价排序的子类
class PriceSortUnderwearManager extends UnderwearManager
{
//重写父类的方法
public Underwear[] getUnderwears()
{
Underwear[] us = super.getUnderwears();
Underwear temp =null;//临时交换的变量
//冒泡排序实现排序
for(int i = 0;i<us.length-1;i++)
{
for(int j=0;j<us.length-1-i;j++)
if(us[j].price>us[j+1].price)
{
temp = us[j];
us[j] = us[j+1];
us[j+1] = temp;
}
}
return us;
}
/**
内衣类
*/
class Underwear
{
float price;
String name;
String sex;
public Underwear(String name,String sex,float price)
{
this.name = name;
this.sex = sex;
this.price = price;
}
public String getInfo()
{
return name+sex+",RMB:"+price;
}
}
/**
内衣管理类
*/
class UnderwearManager
{
private Underwear[] underwears = new Underwear[3];
private int count ;//记录当前的内衣数量,计数器
//添加内衣的功能
public void add(Underwear u)
{
if(count>=underwears.length)
{
int newlen = (underwears.length*3)/2 + 1;
underwears = Arrays.copyOf(underwears,newlen);
}
underwears[count] = u;
count++;
}
//输出所有的内衣信息
public Underwear[] getUnderwears()
{
Underwear[] us = new Underwear[count];
for(int i = 0;i<us.length;i++)
{
us[i] = underwears[i];
}
return us;
}
}
//实现按单价排序的子类
class PriceSortUnderwearManager extends UnderwearManager
{
//重写父类的方法
public Underwear[] getUnderwears()
{
Underwear[] us = super.getUnderwears();
Underwear temp =null;//临时交换的变量
//冒泡排序实现排序
for(int i = 0;i<us.length-1;i++)
{
for(int j=0;j<us.length-1-i;j++)
if(us[j].price>us[j+1].price)
{
temp = us[j];
us[j] = us[j+1];
us[j+1] = temp;
}
}
return us;
}
}
//女士内衣管理
class WomanUnderwearManager extends UnderwearManager
{
//重写父类的方法
public Underwear[] getUnderwears()
{
Underwear[] src = super.getUnderwears();
//创建一个UnderwearManager对象用来存储女性内衣;
UnderwearManager um = new UnderwearManager();
for(int i =0;i<src.length;i++)
{
if("女士".equals(src[i].sex))
{
um.add(src[i]);
}
}
return um.getUnderwears();
}
}
//女士内衣管理
class WomanUnderwearManager extends UnderwearManager
{
//重写父类的方法
public Underwear[] getUnderwears()
{
Underwear[] src = super.getUnderwears();
//创建一个UnderwearManager对象用来存储女性内衣;
UnderwearManager um = new UnderwearManager();
for(int i =0;i<src.length;i++)
{
if("女士".equals(src[i].sex))
{
um.add(src[i]);
}
}
return um.getUnderwears();
}
}