abstract类和接口interface的联系和区别

一,用关键字abstract类修饰的类称为abstract类(抽象类)。
abstract class A{
………….
}
特点:
1. 抽象类中可以有抽象方法和非抽象方法,但是抽象方法只允许声明不允许实现,而且不允许使用final和abstract同时修饰一个方法。

 abstract class A{
      abstract int min (int x,int y);
      int max(int x,int y){
          return x>y?x:y;
      }
}

2.抽象类不能用new运算符创建对象。如果一个非抽象类是某个类的子类,那么它必须重写父类的抽象方法,给出方法体。

 abstract class A{
      abstract int sum(int x,int y);
      int sub(int x,int y){
          return x-y;
      }
}
class B extends A{
   int sum(int x,int y){//子类必须重写父类的sum方法
          return x+y;
        }
}

抽象类只关心操作,即只关心方法的名字,类型以及参数,不关心这些操作是怎么实现的,即不关系方法体。设计程序时,可以把几个类的共有的轮廓,重要特征抽象成一个抽象类,不需要关心具体细节。

二,java不支持多继承的,一个类只能继承一个父类,但是java引入了接口机制,一个类可以实现多个接口。

interface A{
    public final int a=10;
    public abstract void sum(int x,int y);
    public abstract void sub(int x,int y);
}
class B implements A{//使用implements来实现A接口
      void sum(int x,int y){
        return x+y;
      }
       void sub(int x,int y){//必须重写A接口的所有抽象方法
        return x-y;
      }    
}

特点:
1.接口体类只能有常量和抽象方法,即方法都是等待实现的方法。
2,一个类实现了某个接口,必须重写该接口的所有方法
3.多个类可以实现同一个接口,一个类可以实现多个接口。
三,比较
1.接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
2.一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口),人是根源,吃饭,走路时接口。
3.一个类可以实现多个接口,因为一个对象的动作有很多,但是只能继承一个类,因为一个对象的根,本质只有一个。
4.接口中所有的方法都是抽象的,没有一个有程序体。抽象类是可以有非抽象方法。抽象类和接口中的抽象方法都不实现。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值