前言
记录一下做过的题目,虽然作为入门题目很简单,不过还是可以学到一些东西的hh。
程序设计一 接口:
题目:
设计一个天气预报的程序:
(1)设计一个面向接口的类,这个类中有一个可以播报天气预报的方法,天气预报方法的输入参数是一个接口参数;
(2)设计一个接口,规定不同的气象状态的播报形式;
(3)请分别播报晴天、下雨、雪天的天气状况。
天气状态接口
interface weatherstate{
public void showState();
}
实现接口的类
class qingstate implements weatherstate{
public void showState(){
System.out.println("晴,空气清新");
}
}
class yustate implements weatherstate{
public void showState(){
System.out.println("阴转小雨,请注意带伞");
}
}
class xuestate implements weatherstate{
public void showState(){
System.out.println("多云转雪,请注意保暖");
}
}
天气类
class weather {
weatherstate ws;
public void show(){
ws.showState();
}
public void setstate(weatherstate ws){
this.ws=ws;
}
}
主函数
public class weatheryubao{
public static void main(String[] args){
weather wy =new weather();
wy.setstate(new qingstate());
System.out.print("晴天:");
wy.show();
wy.setstate(new yustate());
System.out.print("雨天:");
wy.show();
wy.setstate(new xuestate());
System.out.print("雪天:");
wy.show();
}
}
小tips:
- 接口不是类,它是
Java
中的一个抽象类型,是抽象方法的集合。通常用interface
来声明。一个类通过继承接口,从而继承接口的抽象方法。 - 接口无法被实例化,但是可以被实现。和抽象类一样,实现接口的类必须实现接口中所有的抽象方法,否则声明自己为抽象类。
- 接口不能实例化对象。没有构造方法。不能包含成员变量,除了
static
和final
变量。 - 注意,接口不是被类继承了,而是要被类实现。换句话说,接口的实现 ≠ 接口的继承。 接口的实现是通过另一个类来实现的,而接口的继承是指某个接口继承了另外一个接口。
- 接口支持多继承,也即一个接口可以同时继承多个接口,这和类的继承不同。
- 类使用
implements
关键字实现接口。一个类可以实现多个接口。 - 接口其实也是为了实现多态。