java 接口使用实例
题目:
老师有基础班的,也有就业班的。
共性:
属性:姓名,年龄
功能:讲课。
现在又要针对日语这种小语种单独开班,
需要部分基础班老师和部分就业班老师会说日语。
分析:
题目说到基础班和就业班中的老师部分会日语,那么本次编程将要定义三层类,分别代表老师、所教班类型、是否会讲日语,其中讲日语可以作为接口中的抽象方法,在调用时再定义“会讲日语”。
接口:Interface
抽象方法:say();
父类:Teacher()
属性:String name;int age;
方法:method();
子类:
BaseClassTeacher()
EmployClassTeacher()
子子类:
MrZhang() 不引用接口;
MissKuang()引用接口定义say();
MissWu() 引用接口定义say();
java 代码:
接口:Interface
interface Interface{
public void say();
}
父类:Teacher()
public class Teacher {
String name;
int age;
public void method(){
System.out.println("负责讲课");
}
}
子类:BaseClassTeacher()
class BaseClassTeacher extends Teacher{
public void show(){
System.out.println("我是基础班老师"+name+"年龄:"+age);
}
}
子类:EmployClassTeacher()
class EmployClassTeacher extends Teacher {
public void show(){
System.out.println("我是就业班老师"+name+"年龄:"+age);
}
}
子子类:MrZhang()
class MrZhang extends BaseClassTeacher{
@Override
public void show() {
super.show();
}
}
子子类:MissKuang()
class MissKuang extends EmployClassTeacher implements Interface{
@Override
public void show() {
super.show();
}
@Override
public void say() {
System.out.println("我会讲日语");
}
}
子子类:MissWu()
class MissWu extends BaseClassTeacher implements Interface{
@Override
public void show() {
super.show();
}
@Override
public void say() {
System.out.println("我会讲日语");
}
}
测试main
abstract class main {//
public static void main(String[] args) {
MrZhang mrZhang = new MrZhang();
mrZhang.name = "小张";
mrZhang.age = 20;
mrZhang.show();
mrZhang.method();
System.out.println("===================");
MissKuang missKuang = new MissKuang();
missKuang.name = "老童";
missKuang.age = 18;
missKuang.show();
missKuang.say();
missKuang.method();
System.out.println("===================");
MissWu missWu = new MissWu();
missWu.name = "老婷";
missWu.age = 18;
missWu.show();
missWu.say();
missWu.method();
}
}
运行结果
Memorial Day is 357 days |