第一题
1.【问答题】 (20分)
编程题。
(1)interface Runner {
public void run();
}
(2)定义Runner接口的子接口
interface Hunter extends Runner {
public void hunt();
}
(3)定义实现类猎豹实现Hunter接口,具有奔跑和捕猎功能。
class Cheetah implements Hunter {
。。。补充代码//实现接口中的所有抽象方法
}
(4)编写主类,在main方法中编写多态的代码。输出猎豹在奔跑。猎豹在捕猎。
Runner.java:包含接口Runner的定义。
interface Runner {
public void run();
}
Hunter.java:包含接口Hunter的定义,它继承自Runner接口。
interface Hunter extends Runner {
public void hunt();
}
Cheetah.java:包含类Cheetah的定义,它实现了Hunter接口。
class Cheetah implements Hunter {
@Override
public void run() {
System.out.println("猎豹在奔跑");
}
@Override
public void hunt() {
System.out.println("猎豹在捕猎");
}
}
PolymorphismExample.java:包含主类PolymorphismExample的定义,其中包含了main方法。
public class PolymorphismExample {
public static void main(String[] args) {
Hunter cheetah = new Cheetah();
cheetah.run(); // 猎豹在奔跑
cheetah.hunt(); // 猎豹在捕猎
}
}
运行结果
猎豹在奔跑
猎豹在捕猎
第二题
编程题。
1定义计算平均值的接口ComputerAverage,public double average(double score[]);
2定义接口的实现类,重写接口的方法,计算分数的平均分,累加求和除以个数。
3编写测试类,在主方法中测试average方法,测试一组数据10,20,30,40,50,60,70,80,90,100。
ComputerAverage.java:包含计算平均值的接口定义。
interface ComputerAverage {
public double average(double score[]);
}
AverageCalculator.java:包含实现接口的实现类,重写了接口的方法,计算分数的平均值。
class AverageCalculator implements ComputerAverage {
@Override
public double average(double score[]) {
double sum = 0;
for (double s : score) {
sum += s;
}
return sum / score.length;
}
}
TestAverage.java:包含测试类,其中的main方法用于测试average方法
public class TestAverage {
public static void main(String[] args) {
ComputerAverage calculator = new AverageCalculator();
double[] scores = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
double average = calculator.average(scores);
System.out.println("平均分数为: " + average);
}
}
运行结果:
平均分数为: 55.0
第三题
3.【问答题】 (20分)
根据下面需求,编写代码。
(1)定义一个乐器Instrument接口,接口中包括一个 公共的抽象的方法void play(),
(2)设计管乐器Wind、打击乐器Percussion、弦乐器Stringed等实现类实现该接口,
(3)在主类的main方法中,分别创建Wind、Percussion、Stringed对象,将对象的引用存入一个类型为Instrument的数组中,遍历数组,将数组中的各个乐器对象调用play()方法。
Instrument.java:定义乐器接口Instrument,包含一个抽象方法void play()。
interface Instrument {
public void play();
}
Wind.java:定义管乐器类Wind,实现Instrument接口,实现play()方法。
class Wind implements Instrument {
@Override
public void play() {
System.out.println("演奏管乐器");
}
}
Percussion.java:定义打击乐器类Percussion,实现Instrument接口,实现play()方法。
class Percussion implements Instrument {
@Override
public void play() {
System.out.println("演奏打击乐器");
}
}
Stringed.java:定义弦乐器类Stringed,实现Instrument接口,实现play()方法。
class Stringed implements Instrument {
@Override
public void play() {
System.out.println("演奏弦乐器");
}
}
MainClass.java:包含主类MainClass,其中的main方法中创建各个乐器对象,并将它们的引用存入Instrument类型的数组中,遍历数组并调用play()方法。
public class MainClass {
public static void main(String[] args) {
Instrument[] instruments = new Instrument[3];
instruments[0] = new Wind();
instruments[1] = new Percussion();
instruments[2] = new Stringed();
for (Instrument instrument : instruments) {
instrument.play();
}
}
}
运行结果
演奏管乐器
演奏打击乐器
演奏弦乐器
第四题
根据下面需求,编写代码。
(1)定义手机类,Phone:手机号码String number;
拨打电话call(String number)
接听电话answer()
(2)定义Computer接口,Computer:上网surf();
玩游戏playGame();
看视频playVideo()
(3)定义导航接口,Avigraph:定位orientation();
导航navigate();
(4)创建一个智能手机(SmartPhone),智能手机是(extends)手机(Phone)的子类,同时又能实现(implements)电脑(Computer)和导航仪(Avigraph)的功能,结合继承和接口实现智能手机的多个功能。
(5)在主类的main()中测试智能手机的多个功能。
Phone.java:定义手机类Phone,包含手机号码属性和拨打电话、接听电话的方法。
class Phone {
private String number;
public Phone(String number) {
this.number = number;
}
public void call(String number) {
System.out.println("拨打电话给:" + number);
}
public void answer() {
System.out.println("接听电话");
}
}
Computer.java:定义电脑接口Computer,包含上网、玩游戏和看视频的方法。
interface Computer {
public void surf();
public void playGame();
public void playVideo();
}
Avigraph.java:定义导航接口Avigraph,包含定位和导航的方法。
interface Avigraph {
public void orientation();
public void navigate();
}
SmartPhone.java:定义智能手机类SmartPhone,继承自Phone类,并实现Computer和Avigraph接口的功能。
class SmartPhone extends Phone implements Computer, Avigraph {
public SmartPhone(String number) {
super(number);
}
@Override
public void surf() {
System.out.println("使用智能手机上网");
}
@Override
public void playGame() {
System.out.println("使用智能手机玩游戏");
}
@Override
public void playVideo() {
System.out.println("使用智能手机播放视频");
}
@Override
public void orientation() {
System.out.println("使用智能手机进行定位");
}
@Override
public void navigate() {
System.out.println("使用智能手机进行导航");
}
}
MainClass.java:包含主类MainClass,其中的main方法中创建智能手机对象,并测试智能手机的多个功能。
public class MainClass {
public static void main(String[] args) {
SmartPhone smartphone = new SmartPhone("123456789");
smartphone.call("987654321");
smartphone.answer();
smartphone.surf();
smartphone.playGame();
smartphone.playVideo();
smartphone.orientation();
smartphone.navigate();
}
}
运行结果:
拨打电话给:987654321
接听电话
使用智能手机上网
使用智能手机玩游戏
使用智能手机播放视频
使用智能手机进行定位
使用智能手机进行导航
第五题
5.【问答题】 (10分)
下面程序有错误,请修改正确。
输出结果为314.00
//定义接口
interface Shape{
double PI;
double area();
}
//编写接口的实现类
class Circle extends Shape{
private double radius;
public Circle(double radius) {
this.radius = radius;
}
double area(){
return PIradiusradius;
}
}
//编写测试类
public class MyTest {
public static void main(String[] args) {
Circle circle=new Circle(10);
System.out.printf(“%.2f\n”,circle.area());
}
}
// 定义接口
interface Shape {
double PI = 3.14; // 添加初始值
double area();
}
// 编写接口的实现类
class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double area() {
return PI * radius * radius;
}
}
// 编写测试类
public class MyTest {
public static void main(String[] args) {
Circle circle = new Circle(10);
System.out.printf("%.2f\n", circle.area());
}
}
运行结果:
314.00
第六题
6.【问答题】 (10分)
1.证明一个接口的属性在缺省情况下是static和final的。
interface MyInterface {
int MY_CONSTANT = 100;
}
class MyClass implements MyInterface {
// 编译错误:无法为最终变量MY_CONSTANT分配值
// MY_CONSTANT = 200;
public void printConstant() {
System.out.println("Constant value: " + MY_CONSTANT);
}
}
public class MainClass {
public static void main(String[] args) {
MyClass myObj = new MyClass();
myObj.printConstant();
// 编译错误:无法为最终变量MY_CONSTANT分配值
// MyInterface.MY_CONSTANT = 300;
}
}
免责声明
本文章所有的图片以及代码等仅作为学习使用,不作为商业目的,如有侵权请联系我删除!
所提供的代码仅供参考,有很多不足请自行补充!