Java中抽象类和接口的区别

抽象类

在了解抽象类之前,先了解什么是抽象方法。抽象方法就是只有方法声明,没有方法体,并且使用abstract修饰的方法。

    public abstract void eat();

那么抽象类也是一个使用abstract修饰的类。

public abstract class Animal {
    public abstract void eat();
}

抽象类的出现是为了继承而出现的,抽象类是类和类之间有共同特征,然后将这些共同特征提取出来,形成抽象类。创建了一个抽象类后,不去继承它,就失去了创建它的意义。

接口

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。在java中体现在对行为的抽象。使用interface修饰类,类去实现接口用implements表示。

public interface Demo1 {
    public static final int age = 10;  //接口中的成员变量,只能是常量,默认修饰符:public static final
//    public Demo1(){}    接口中没有构造方法
//    public void eat(){}   接口中不存在非抽象方法
    public abstract void eat();
    
}

抽象类和接口的共同点和区别

共同点:都不能实例化;都可以被继承。

不同点:

成员变量:抽象类:变量,常量。           接口: 常量。

构造方法:抽象类有构造方法,接口没有。

成员方法:抽象类抽象方法和非抽象方法都有,接口只能是抽象方法。

设计上:抽象类是对一种事物的抽象,包括属性的行为;接口是对行为的抽象,主要是行为。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值