浅析抽象类与接口

概念
抽象类:包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被定义为抽象的。(否则,编译器会报错)(摘自Think in java第四版)

从这句话可以得到如下有用信息:

  1. 抽象类不一定必须包含抽象方法。
  2. 包含抽象方法的类一定是抽象类。
  3. 抽象类内即可以包含抽象方法也可以包含非抽象的方法。
  4. final、static关键字不能用于抽象方法,但是可以用于抽象类中的非抽象方法。
  5. 不能定义抽象方法为private类型。

举个例子:

public abstract class AbstractClass {
    public String toString(){//非抽象方法
        return getClass().getName();
    }
    public abstract void toInteger();//抽象方法。该方法也可以不存在!!!!!
}

接口:接口被用来定义类与类之间的协议。interface不仅仅是一个极度的抽象类,因为它允许人们通过创建一个能够被向上转型为多种基类的类型。

有用信息:

  1. 没有任何非静态实现的方法。
  2. 不能出现final关键字在任何一个定义的方法上。
  3. static可以存在一个实现的方法上。
  4. 不能出现private关键字在定义的方法上。

例子:

public interface Car {
   void produce();
   static void testStatic(){//这个完全可以忽略,存在有些混淆视听了,只是想推翻不能存在任何方法体的说法
   }  
}

总结
抽象类与接口的区别是经常问到的面试题,也是很重要的基础知识,简单的总结一下吧,后续会讲到继承抽象类与实现接口。

积土成山,风雨兴焉!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值