Java之接口
相关要点说明及体现
构造动物,猫狗继承体系说明
注意点1
一个类可以实现多个接口
public interface Dance {
public abstract void dance();
}
public interface Sing {
public abstract void sing();
}
public class Dog extends Animal implements Dance,Sing{//一个类可以实现多个接口
@Override
public void dance() {
}
@Override
public void sing() {
}
}
注意点2
接口中成员变量前面有默认修饰符 public static final(可省略不写,但建议写出)
接口中成员方法前有默认修饰符public abstract(可省略不写,但建议写出)
public interface Dance {
public static final int num = 4;//接口中成员变量定义
public abstract void dance();//接口中方法定义
}
例题举例
一教育机构的老师有基础班的,也有就业班的。
共性:
属性:姓名,年龄
功能:讲课。
现在又要针对日语这种小语种单独开班,
需要部分基础班老师和部分就业班老师会说日语。
请用所学知识把上面的内容用代码体现。
接口部分
public interface Japanese {
public abstract void speakJapanese();
}
父类 老师:
public abstract class Teacher {
private String name;
private int age;
public Teacher() {
}
public Teacher(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public abstract void teach();
}
子类 基础班老师:
public class Jc extends Teacher{
public Jc() {
super();
}
public Jc(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("讲基础课");
}
}
子类 就业班老师:
public class Jy extends Teacher{
public Jy() {
super();
}
public Jy(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("讲就业课");
}
}
子类 基础班老师(讲日语):
public class Jcjapanese extends Jc implements Japanese {
public Jcjapanese() {
super();
}
public Jcjapanese(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("用日语讲基础课");
}
@Override
public void speakJapanese() {
}
}
子类 就业办老师(讲日语):
public class Jyjapanese extends Jy implements Japanese{
@Override
public void speakJapanese() {
}
public Jyjapanese() {
super();
}
public Jyjapanese(String name, int age) {
super(name, age);
}
@Override
public void teach() {
System.out.println("用日语讲就业课");
}
}
测试部分:
public class Test {
public static void main(String[] args) {
Teacher jc = new Jc("张三",20);
System.out.println(jc.getName()+" "+jc.getAge());
jc.teach();
System.out.println("---------------");
Jyjapanese jyj = new Jyjapanese("李四",21);
System.out.println(jyj.getName()+" "+jyj.getAge());
jyj.teach();
}
}
结果显示:
张三 20
讲基础课
李四 21
用日语讲就业课