接口的特点:
A:接口用关键字interface表示
interface 接口名 {}
B:类实现接口用 implements 表示
class 类名 implements 接口名 {}
C:接口不能实例化
那么,接口如何实例化呢?
按照多态的方式来实例化。
D:接口的子类
a:可以是抽象类。但是意义不大。
b:但是可以具体类。要重写结构中的所有抽象方法。(推荐方案)
由此可见:
A:具体类多态(几乎没有)
B:抽象类多态(常用)
C:接口多态(最常用)
//定义动物培训接口
interface AnimalTrain {
public abstract void jump(); //一个抽象方法
}
//抽象类实现接口
abstract class Dog implements AnimalTrain {}
//具体类实现接口
class Cat implements AnimalTrain {
public void jump() {
System.out.println("猫可以跳高了");
}
}
//测试类
class InterfaceDemo {
public static void main(String[] args) {
AnimalTrain at = new Cat();
at.jump(); //方法重写 输出子类jump
}
}
接口的特点:
A:接口用关键字interface表示
interface 接口名 {}
B:类实现接口用 implements 表示
class 类名 implements 接口名 {}
C:接口不能实例化
那么,接口如何实例化呢?
按照多态的方式来实例化。
D:接口的子类
a:可以是抽象类。但是意义不大。
b:但是可以具体类。要重写结构中的所有抽象方法。(推荐方案)
由此可见:
A:具体类多态(几乎没有)
B:抽象类多态(常用)
C:接口多态(最常用)
//定义动物培训接口
interface AnimalTrain {
public abstract void jump(); //一个抽象方法
}
//抽象类实现接口
abstract class Dog implements AnimalTrain {
}
//具体类实现接口
class Cat implements AnimalTrain {
public void jump() {
System.out.println("猫可以跳高了");
}
}
//测试类
class InterfaceDemo {
public static void main(String[] args) {
AnimalTrain at = new Cat();
at.jump(); //方法重写 输出子类jump
}
}
接口成员特点
成员变量:只能是常量,并且是静态的。
默认修饰符:public static final
建议:自己手动给出
构造方法:接口没有构造方法。
因为接口主要是扩展功能的,而没有具体存在。
成员方法:只能是抽象方法。
默认修饰符:public abstract // 默认公共最大权限 默认抽象 方法重写权限不能低于public
建议:自己手动给出
所有的类都默认继承自一个类:Object。
类 Object 是类层次结构的根类。每个类都使用 Object 作为超级类 //无继承的类默认继承Object