接口的成员特点:
- 成员变量:只能是常量,并且是静态的
默认修饰符:public static final
建议:自己手动给出。 - 构造方法:接口没有构造方法
因为接口主要是扩展功能的,而没有具体的存在。 - 成员方法:只能是抽象方法
默认修饰符:public abstract
建议自己手动给出。
所有的类都默认继承自一个类:Object。
类Object是类层次结构的根类。每个类都使用Object作为超类。
代码演示:
interface Inter {
public int num = 10;
public final int num2 = 20;
public static final int num3 = 30;
//错误:需要<标识符>
//public Inter() {}
//接口抽象方法不能带有主体
//public void show() {}
//abstract void show();//默认public
public void show();//默认abstract
}
//接口名+Impl这种格式是接口的实现类格式
/*
class InterImpl implements Inter {
public InterImpl() {
super();
}
}
*/
class InterImpl extends Object implements Inter {
public InterImpl() {
super();
}
public void show() {}
}
class InterfaceDemo2 {
public static void main(String[] args) {
//创建对象
Inter i = new InterImpl();
System.out.println(i.num);
System.out.println(i.num2);
//i.num = 100;
//i.num2 = 200;
//System.out.println(i.num);//无法为最终变量num分配值
//System.out.println(i.num2);//无法为最终变量num2分配值
System.out.println(Inter.num);//10
System.out.println(Inter.num2);//20
System.out.println("-------");
}
}
类与类:
- 继承关系,只能单继承,可以多继承
类与接口:
- 实现关系,可以单实现,也可以多实现
- 并且还可以在继承一个类的同时实现多个接口
接口与接口:
- 继承关系,可以单继承,可以多继承
代码示例:
interface Father {
public abstract void show();
}
interface Mother {
public abstract void show2();
}
interface Sister extends Father,Mother {
public abstract void
}
//class Son implements Father,Mother //多实现
class Son extends Object implements Father,Mother {
public void show() {
System.out.println("show son");
}
public void show2() {
System.out.println("show2 son");
}
}
class InterfaceDemo3 {
public static void main(String[] args) {
//创建对象 采用多态的方式
Father f = new Son();
f.show();
//f.show2();//报错
Mother m = new Son();
m.show2();
//m.show();//报错
}
}