Java基础之接口与抽象类

抽象类

猫,狗都是动物,所以动物是一种抽象类。

需要狗、猫来分别对它进行特定的描述,才知道动物具体特征。

 

记住:

1:抽象类不能实例化。

2:抽象类是拿来继承的,所以不能用final修饰。

3:抽象类可以拥有普通方法,变量,常量。

4:子类可以继承抽象类的普通方法,也可重写抽象类的普通方法。

      要实现所有的抽象方法。

5:abstract 不能与private、static、final或native并列修饰同一个方法。

 

接口

接口比抽象类还要抽象,间接实现java类的多继承

推荐继承和接口共同使用,因为这样既可以保证数据安全性又可以实现多继承。

记住:

1:接口不能实例化。

2:接口方法为public。

3:常量为public static final,必须初始化。

4:要实现所有的抽象方法。 

 

两者差异

1:抽象类可以拥有任意范围的成员数据,也可拥有:非抽象方法,

     但接口仅能够有静态、不能修改的成员数据(public static final),

     同时接口所有的方法都必须是抽象的。

     在某种程度上来说,接口是抽象类的特殊化。

2:抽象类是对类抽象,对整个类整体进行抽象,包括属性(数据)、行为(方法),

      接口是对类行为(方法)进行抽象。

3:重点(跨域)

     抽象类的子类是拥有相同特点的类,如猫会叫,狗会叫,都是动物 (is-a)

     则动物可以抽象为一个抽象类,拥有一个行为为“叫”抽象方法供猫类。狗类重写。

     而接口的实现。即鸟会飞,飞机会飞,两者无其他共同之处,(like-a)

    即两者可以实现飞的接口,具有飞行功能。

4:抽象类是自底向上抽象而来的,接口是自顶向下设计。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值