在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。为了让初学者掌握方法的重写,本案例将编写一个类NewPhone,该类继承Phone类并对Phone类的call()方法进行重写。
1)定义一个类Phone,编写方法call(),表示打电话功能
2)定义一个Phone的子类NewPhone,重写父类call()方法,让它除了打电话功能外还具有开启语言和关闭语言功能。
3)(不用写)测试类Main,分别调用类Phone和子类NewPhone的call()方法。
类的定义:
在这里定义类。例如: class Phone { …… } ……
裁判测试程序样例:
在这里给出main函数调用测试的例子。例如: public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String no=sc.nextLine(); String no1=sc.nextLine(); System.out.println("--Phone--"); Phone phone = new Phone(); phone.no=no; phone.call(no1); System.out.println("--NewPhone--"); Phone newPhone = new NewPhone(); newPhone.no=no; newPhone.call(no1); } } /* 请在这里填写答案 */
输入格式:
请输入本机号和对方号码。
输出格式:
请分别打印类Phone和子类NewPhone的call()的执行结果,具体格式看输出样例。
输入样例:
在这里给出一组输入。例如:
13157771111
13356772222
输出样例:
在这里给出相应的输出。例如:
--Phone--
13157771111:打电话给13356772222
--NewPhone--
13157771111:开启语音
13157771111:打电话给13356772222
13157771111:关闭语音
答案:
import java.util.Scanner;
// 定义Phone类
class Phone {
String no; // 本机号码
// 打电话功能
public void call(String otherNo) {
System.out.println(no + ":打电话给" + otherNo);
}
}
// 定义NewPhone类,继承自Phone
class NewPhone extends Phone {
// 重写call方法,在打电话的同时加入开启和关闭语音功能
@Override
public void call(String otherNo) {
System.out.println(no + ":开启语音");
super.call(otherNo);
System.out.println(no + ":关闭语音");
}
}