1、接口与抽象类的不同
接口:
接口是一种规范,用来规定对象的行为,接口与对象是一种"has a"的关系。它不是一个类,因为它不能用来描述对象的属性
抽象类:
抽象类是一个类;它归纳了具体子类的行为与属性,与对象是一种“is a”的关系。
2、接口中的方法定义
- 接口中所有的方法自动是public
void put();
- 接口中所有的方法不允许是protected
- 接口中可以定义私有静态方法与私有实例方法,但必须有方法体
`private void out(){}
private static void out(){}
- 接口中也可以定义公有静态方法,但必须有方法体
static void put03(){}//没指定,自动为public
- 接口中可以定义默认方法,但必须有方法体,default只能是public
默认方法的全限定名为:public default void com.examination.util.MyInterface.put02()
default void put02(){ }
3、接口中的属性定义
接口中的属性修饰符自动是public static final
也可以是public final
,不过这种定义,只能在内部使用。
4、接口的方法的实现与继承细节
1、接口中的抽象方法必须被实现
2、接口中的默认方法(default),可以直接在实现类中使用,类似于继承。也可以被重写
public interface Config {
void print();
private void hello(){
System.out.println("hello..");
}
private static void print01(){
System.out.println("print01..");
}
static void print03(){
System.out.println("print03..");
}
default void a(){
System.out.println("default..");
}
}
实现类:
public class Config2 implements Config{
@Override
public void print() {
System.out.println("print..");
a();
}
}