Java——抽象类和接口的区别

——语法层面的区别

  • 成员区别

      抽象类           变量,常量;有构造方法;有抽象方法,也有非抽象方法
      接口               常量;抽象方法

  • 关系区别

      类与类           继承,单继承
      类与接口       实现,可以单实现,也可以多实现
      接口与接口   继承,单继承,多继承

——设计层面的区别

  • 设计理念区别

      抽象类           对类抽象,包括属性、行为
      接口              对行为抽象,主要是行为 

 举例:

门和警报的例子
门:都有open0和close(两个动作,这个时候,我们可以分别使用抽象类和接口来定义这个抽象概念

//抽象类

public abstract class Door {
    public abstract void open ();
    public abstract void close ();
}

public abstract class Door {
    public abstract void open ();
    public abstract void close ();
    public abstract void alarm ();
}
//接口

public interface Door {
    void open ();
    void close ();
} 

public interface Door {
    void open ();
    void close ();
    void alarm ();
} 
public interface Alram {
    void alarm() ;
public abstract class Door {
    public abstract void open() ;
    public abstract void close() ;
}
public class AlarmDoor extends Door implements Alarm {
    public void oepn() {
        //....
    public void close () {
        //....
    public void alarm() {
        //....
    }
}


在这里,再次强调抽象类是对事物的抽象,而接口是对行为的抽象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钢铁大侠.

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值