一个类最多只能有一个直接的父类,但是它可以有多个间接的父类。
接口:它是为了拓展功能的
接口的定义格式:
interface 接口名 {
}
接口要注意的事项:
- 接口是一个特殊的类
- 接口的成员变量默认的修饰符为: public static final,那么也就是说接口中的成员变量都是常亮,不写的话编译器会自动添加。
- 接口中的方法,都是抽象的方法,默认的修饰符为public abstract,不写的话编译器会自动添加
- 接口中不能创建对象。
- 接口是没有构造方法的
原因:抽象类的构造方法可以提供给子类使用,子类主要是为了初始化父类的成员属性,接口没有初始化的必要,因为接口中的成员变量都是常亮,不能重新赋值 方法是抽象的,又不能调用。 - 接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中所有方法全部实现。
实现接口的格式:
class 类名 implements 接口名{
}
interface A{
public static final int i=10;
public void print();
}
public class Demo1 implements A{
public static void main(String[] args) {
Demo1 d=new Demo1();
d.print();
}
public void print(){
System.out.println( "这个是接口中的print方法...");
}
}
运行结果
案例(实现带橡皮的铅笔有写和擦的功能)
//普通的铅笔类
class Pencil{
String name;
public Pencil(String name){
this.name=name;
}
public void write(){
System.out.println(name+"哗哗的写......");
}
}
//橡皮接口
interface Eraser{
public void remove();
}
//带橡皮的铅笔
class PenclWriteErase extends Pencil implements Eraser{
public PenclWriteErase(String name){
super(name);
}
public void remove(){
System.out.println(name+"涂改,涂写......");
}
}
public class Demo2 {
public static void main(String[] args) {
PenclWriteErase p=new PenclWriteErase("4H铅笔");
p.write();
p.remove();
}
}
接口的作用:
1.程序的解耦。(低耦合)
2. 可以定义约束规范。
3. 拓展功能。