【Java基本知识】抽象类与接口对比

来源:互联网 发布:杭州优化妆学校排行 编辑:程序博客网 时间:2024/06/05 17:18

抽象类与接口

1.两者差异对比

对比 构造方法普通方法静态方法普通成员变量静态成员变量抽象方法抽象类TTTTTT
但不能为private类型接口FFFFT
默认且只能为public static final类型,即常量T
默认为public abstract类型,推荐不加修饰

2.抽象类

/** * 抽象类 * 1.可以包含构造方法 * 2.可以包含静态成员变量、静态方法 * 3.可以包含抽象、非抽象方法;但抽象方法不能为private * @author wsz * @date 2017年12月8日 */abstract class AbstractClass{public AbstractClass() {//构造方法this.id =666;}public int function0() {//普通方法return 666;}@Setter@Getterprivate int id;//成员变量//静态变量static String name;private static String name1;protected static String name2;public static String name3;//静态方法private static String function1() {return "666";}protected static String function2() {return "666";}public static String function3() {return "666";}//抽象方法abstract void function4();//private abstract void function5(); 不可为privateprotected abstract void function6();public abstract void function7();}

3.接口

/** * 接口 * 1.不能包含构造方法 * 2.可包含默认为public static final的变量,即常量。不包含普通成员变量 * 3.不能包含静态方法 * 4.不能包含非抽象方法 * 5.包含的抽象方法默认为public abstract修饰的,在使用中推荐不加修饰,保持简洁性 * 说明:JDK8中接口允许有默认实现,那么这个default方法,是对所有实现类都有价值的默认实现 * @author wsz * */interface InterfaceTest{//public InterfaceTest() {}; 没有构造方法//int id;  没有成员变量public static final int ID = 1; //静态成员变量,即常量//static int function1(); 没有静态方法//int function2() {return 1;}; 没有普通方法public abstract int funtion3(); //抽象方法}