Java中抽象类和接口的区别

Java中抽象类和接口的区别

抽象类

包含抽象方法的一定是抽象类,但抽象类中不一定有抽象方法。抽象类只能被继承,不能被实例化。

接口

接口是一个抽象类型,是抽象方法的集合,不能被实例化

相同点

  • 接口和抽象类都不能够被实例化
  • 抽象类和接口都可以定义抽象方法,子类和实现类必须对这些抽象方法重写

不同点

  • 抽象类有构造方法,主要用于子类实例化的时候,接口没有构造方法

  • 抽象类中可以包含普通方法,接口在1.8以前只能定义抽象方法

  • 抽象类只能单继承,而接口可以多继承

  • 变量:抽象类中可以定义各种类型的成员变量,接口中只能是public static final修饰的静态常量

  • public abstract class People {
        int age=18;
        static  String name="zhnagjiabin";
        final String sex="nan";
        static final int sno=110;
    }
    
    interface run{
        public static final int no=45;
        int speed=10;
    }
    

    抽象类的使用场景

    约束子类具有共同的行为(不在乎其具体实现),拥有实例变量

    接口的使用场景

    约束多个实现类具有统一的行为,但是不在其具体实现,实现类中各个功能之间可能没有任何联系

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值