其实题目已经描述的很清楚了:
父类 Phone
子类 SmartPhone 继承 Phone
测试类Test 包含 main() 方法
可以参考我的关于类和对象的技术博客 照猫画虎 链接如下:http://t.csdn.cn/RhEdt
写了一个小时,还望博友采纳!细节不同之处,博友简单改改即可。整体逻辑是没问题的!
1、电话本类
package cn.bdqn.demo10;
//电话本类
public class PhoneBox {
//定义属性
private String name;
private String num;
//添加有参构造
public PhoneBox(String name, String num) {
super();
this.name = name;
this.num = num;
}
//添加get/set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
}
2、一代电话类
package cn.bdqn.demo10;
import java.util.Scanner;
public class Phone {
Scanner sc=new Scanner(System.in);
//定义属性
private String phoneNum;
private PhoneBox phoneBox;
//添加get/set方法
public String getPhoneNum() {
return phoneNum;
}
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}
public PhoneBox getPhoneBox() {
return phoneBox;
}
public void setPhoneBox(PhoneBox phoneBox) {
this.phoneBox = phoneBox;
}
/*添加功能*/
//设置本机号码
public void setNum(){
System.out.print("设置本机号码:");
String num=sc.next();
this.setPhoneNum(num);
}
//读取本机号码
public void getNum(){
System.out.println("获取本机号码:"+this.getPhoneNum());
}
//向电话本新增联系人(姓名及电话)
public PhoneBox[] phoneBoxs=new PhoneBox[1];
public void addNumInfo(){
System.out.println("新增联系人");
System.out.print("姓名:");
String addName=sc.next();
System.out.print("电话:");
String addNum=sc.next();
phoneBoxs[0]=new PhoneBox(addName, addNum);
}
//查询联系人电话
public String searchNum(){
System.out.println("请输入查询的联系人姓名:");
String currentName=sc.next();
String currentNum=null;
if(currentName.equals(phoneBoxs[0].getName())){
currentNum=phoneBoxs[0].getNum();
}else{
System.out.println("您查询的联系人不存在或号码未添加!");
}
return currentNum;
}
//拨打电话
boolean isCall=false;
public void dialNumber(){
String num=searchNum();
if(num!=null){
System.out.println("正在为您拨通"+num);
isCall=true;
}
}
//挂断电话
public void hangUp(){
if(isCall){
System.out.println("为您挂断"+phoneBoxs[0].getNum());
}
}
}
3、二代电话类
package cn.bdqn.demo10;
public class SmartPhone extends Phone {
//拍照功能
public void takePhoto(){
System.out.println("摆好POSE,咔嚓......");
}
}
4、测试类
package cn.bdqn.demo10;
public class Test {
public static void main(String[] args) {
Phone phone=new SmartPhone();
SmartPhone sp=(SmartPhone)phone;
sp.setNum();
sp.addNumInfo();
sp.dialNumber();
sp.hangUp();
sp.takePhoto();
}
}
测试效果: