抽象类和接口

抽象类与接口的区别

abstract class(抽象类)和interface(接口)有什么异同?
相同:都不能被实例化。interface实现类及abstrct class的子类都必须要实现已经声明
的抽象方法。
不同:1、interface中只允许定义常量和抽象方法,而abstract class中可定义普通方法和
抽象方法。
2、interface需要实现,要用implements,而abstract class需要继承,要用extends。
  3、一个类可以实现多个interface,但一个类只能继承一个abstract class。
  4、interface强调特定功能的实现,而abstract class强调所属关系。

使用实例说明:接口与抽象类的区别。

package abstractTest2;

//接口,只制定规范
public interface ZhuXi {

	public void faZhanJingji();

	public void shouFuTaiWan();

	public void daBaiMeiGuo();
}
// 接口是需要实现的,而抽象类需要继承的
package abstractTest2;
//抽象类,有选择的去实现各种东西,但不能实例化,具体方法可以被子类重写
public abstract class ZongLi implements ZhuXi{
	
	public void faZhanJingji() {

	}
}
package abstractTest2;

//最终用的都是类,该实现的都去实现
public class GongZhu extends ZongLi {

	public void shouFuTaiWan() {

	}

	public void daBaiMeiGuo() {

	}

}

在这里插入图片描述

总结:接口有比抽象类更好的特性:
1.可以被多继承
2.设计和实现完全分离
3.更自然的使用多态
4.更容易搭建程序框架
5.更容易更换实现
所以现在都提倡优先使用接口,而且在jdk8之后,抽象类的功能都可以在接口中实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值