java中抽象类与接口的区别

抽象类与接口的区别:

1. 抽象类中可以含有普通方法和变量,而接口中只能含有抽象方法(public abstract修饰)和常量(public final static修饰),不能含有任何实现了的方法。

2. 抽象类中由构造器,而接口中没有构造器。

3. 抽象类只能是单继承,多实现。而接口是多继承其他接口,但是不能实现接口,也不能继承其他类。

4. 抽象类中也可以含有final的方法和静态方法,但是接口不可以。

5. 抽象类继承与Object,接口不能继承于Object.

/**
 * 抽象类与接口比较:
 * 抽象类:可以有构造方法,普通方法,final修饰的方法,静态方法,普通变量,静态成员变量,抽象类是单继承
 * 接口:接口中只能有抽象方法,修饰符是public abstract,不能含有被实现的方法。只能有常量,修饰符只能是public static final
 *       接口是多继承(实现)
 * @author hezhi
 *
 */
public abstract class AbstractDemo01 {
	int age ;
	static int id ;
	//构造方法
	public AbstractDemo01() {
		
	}
	//静态方法
	public static void test() {
		
	}
	//final方法:不可被重写
	public final void Foo() {
		
	}
	public abstract void sayHey() ;     //抽象方法没有方法体
}

/**
 * 接口修饰符只能是public和abstract
 * @author hezhi
 *
 */
public interface Interface {
	//常量必须赋初值,public static final
	int id = 0;
	//方法必须是抽象方法,都是public abstract修饰,不写默认
	void test() ;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值