3:接口 (1)如果一个抽象类中的方法都是抽象的,这个时候,java就提供了一种 更抽象的表示形式:接口。 接口:interface 实现:implements 格式: interface 接口名{} class 类名 implements 接口名 {} (2)接口的特点: A:接口不能被实例化。 B:一个类如果实现了接口: 要么是抽象类。 要么实现接口中的所有方法。 (3)接口的成员特点: A:成员变量 只能是常量。默认修饰符 public static final B:成员方法 只能是抽象方法。默认修饰符 public abstract 推荐:永远手动给出修饰符。 (4)接口的思想特点: A:对外暴露的规则 B:是功能的扩展 C:降低耦合度 耦合:类与类的关系 内聚:类自己完成某件事情的能力 高内聚,低耦合。 D:接口可以多实现。 (5)类,接口的关系 A:类与类 继承关系,只能单继承,可以多层继承。 B:类与接口 实现关系,可以单实现,也可以多实现。 还可以在继承一个类的同时实现多个接口。 C:接口与接口 继承关系,可以单继承,也可以多继承。 (6)抽象类和接口的关系?自己补齐。 接口是一种特殊的抽象类,比抽象类更抽象,因为它里 (7)案例:运动员和教练的案例。 另附代码 */ abstract class Teacher { private String name; private int age;
public Teacher(){}
public Teacher(String name,int age) { this.name = name; this.age = age; }
public void setName(String name) { this.name = name; }
public String getName() { return name; }
public void setAge(int age) { this.age = age; }
public int getAge() { return age; }
public void show() { System.out.println(name+"***"+age); }
//讲课 public abstract void teach(); }
class BaseTeacher extends Teacher { public BaseTeacher(){}
public BaseTeacher(String name,int age) { super(name,age); }
public void teach() { System.out.println("基础班老师讲解JavaSE"); } }
class WorkTeacher extends Teacher { public WorkTeacher(){}
public WorkTeacher(String name,int age) { super(name,age); }
public void teach() { System.out.println("就业班老师讲解JavaEE"); } }
class AbstractTest { public static void main(String[] args) { //多态 //基础班老师 //无参构造 Teacher t = new BaseTeacher(); t.setName("林青霞"); t.setAge(26); t.teach(); t.show();
//带参构造 t = new BaseTeacher("貂蝉",18); t.teach(); t.show();
//就业班老师 t = new WorkTeacher("凤姐",30); t.teach(); t.show();
t = new WorkTeacher(); t.setName("芙蓉姐姐"); t.setAge(20); t.teach(); t.show(); } }
|