抽象类abstract class和接口interface的区别

本文详细阐述了抽象类和接口在面向对象编程中的不同点:抽象类作为一类事物的抽象,可以提供部分方法实现,而接口仅定义行为规范,所有方法无实现。继承抽象类时,子类可以选择不实现抽象方法,但实现接口必须提供接口中定义的所有方法。当抽象类新增方法,子类可不做处理,接口则需修改实现类。
摘要由CSDN通过智能技术生成

抽象类abstract class和接口interface的区别

区别一:
抽象类是一类事物的高度聚合。比如动物,猫、狗、猪、牛…等等都属于动物。所以动物类就是抽象类。
猫类,狗类,猪类…等等都可以继承动物类。
代码如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
接口是定义行为规范,比如"吃",很多东西都可以叫,猫、人、老虎…等等都可以吃。所以就可以定义一个"吃"的接口。
代码如下:
在这里插入图片描述
在这里插入图片描述
区别二:
抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。
抽象类定义方法:
在这里插入图片描述
在这里插入图片描述
接口定义方法:
在这里插入图片描述
区别三:
继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。

public class Cat extends Animal{
        @Override
        public void eat() {
        	// TODO Auto-generated method stub
        	super.eat();
        }
}
public class Cat extends Animal{
        @Override
        public void eat() {
        	// TODO Auto-generated method stub
        	System.out.println("....");
        }
}

public class Cat implements Eat{

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("吃东西");
	}
        
}

区别四:
在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值