用类封装手机基本属性和功能
用类封装手机基本属性和功能,要求手机可以使用移动公司的SIM卡,也可以用联通的SIM卡。
- 设计抽象类
设计一个抽象类的SIM,该抽象类有三个抽象方法 giveNumber()、setNumber()、giveCorpName(),那么SIM的子类必须实现giveNumber、setNumber和giveCorpName()方法。 - 设计手机类
设计MobileTelephone类(模拟手机),改类有一个useSIM(SIM card)方法,改方法的参数是SIM类型。很显然,参数card可以是抽象类SIm的任何一个子类对象的上转型对象,即参数card可以调用SIM的子类重写的giveNumber()方法显示手机所使用的号码,调用子类重写的giveCorpName()方法显示该号码所属的公司。 - ChinaMobileSim页面代码
package abs;
public class ChinaMobileSim extends SIM{
int number;
@Override
int giveNumber() {
return number;
}
@Override
void setNumber(int number) {
this.number=number;
}
@Override
String giveCorpName() {
return "中国移动";
}
}
- MobilePhone页面代码
package abs;
public class MobilePhone {
public SIM sim;
public void useSIM(SIM card) {
sim=card;
}
public void open() {
// TODO Auto-generated method stub
}
}
- SIM页面代码
package abs;
public abstract class SIM {
abstract int giveNumber();
abstract void setNumber(int number);
abstract String giveCorpName();
}
- Test页面代码
package abs;
public class Test {
public static void main(String[] args) {
MobilePhone phone =new MobilePhone();
ChinaMobileSim sim1=new ChinaMobileSim();
sim1.setNumber(123456789);
phone.useSIM(sim1);
phone.open();
ChinaMobileSim sim2=new ChinaMobileSim();
sim2.setNumber(321654987);
phone.useSIM(sim2);
phone.open();
}}