您的位置:首页 > 编程语言 > Java开发

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

2017-12-08 21:31 225 查看

抽象类与接口

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
@Getter
private int id;//成员变量

//静态变量
static String name;
private static String name1;
protected static String name2;
public st
4000
atic 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(); 不可为private
protected 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(); //抽象方法
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: