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

抽象类与接口

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 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(); 不可为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(); //抽象方法
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值