接口和抽象类区别
接口和抽象类
接口测试
public interface A<T> {
//普通方法---不能
/* public void aa(){
System.out.println();
}*/
//默认方法----可以
/* public default void aa(){
System.out.println();
}*/
//可以放静态方法
/* public static void aaa(){
System.out.println();
}*/
//静态常量---能
public static String ok="aaa";
String ok1 ="cc";
//不能放变量 静态变量都不能放
// String ss;
// public static String ok
//只有一个抽象方法的接口叫函数式接口
T get();
}
总结
接口与抽象类的区别
相同点
1、它们都不能被实例化,就是不能直接new()为它们分配空间,而是需要通过继承或者实现它们的类将它们实例化。
2、继承或者实现它们的类都必须实现它们所有的抽象方法。假如继承该抽象类的类没有全部实现抽象方法,则还是一个抽象类。
不同点
1,接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
2,实现接口的关键字为implements,继承抽象类的关键字为extends。
3, 一个类可以实现多个接口,但只能继承一个抽象类。接口可以被多重实现,抽象类只能被单一继承
4,类与类之间只允许单继承,即一个类只能继承一个抽象类;但是一个类可以实现多个接口implements 接口 ,实现多继承。
5,接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。
6,接口中不能放普通方法,以及变量、静态变量可以放静态常量,静态方法,默认方法
部分源于网络
还没有评论,来说两句吧...