黑马程序员——抽象类和接口

------- android培训java培训、期待与您交流! ----------

1.抽象类:抽象类是指在类中定义方法,但并不去实现它,而在它的子类中去具体的实现。定义的抽象方法不过是一个方法占位符。继承抽象类的子类必须实现父类的抽象方法,除非子类也被定义成抽象类。定义抽象类是通过abstract关键字实现的。

         写法特点:

         (1)抽象函数只对函数进行声明,没有函数主体。

         (2)抽象类和抽象函数都需要用abstract修饰。

         (3)抽象类不可以进行实例化即不可以被创建对象。

         (4)想要使用抽象功能,必须通过子类覆盖父类中所有的抽象方法后,才可以对子类实例化。如果只覆盖了部分抽象方法,那么子类还是一个抽象类。

也可以理解为:抽象类是一个父类,是不断向上抽取而来的,在抽取过程中,只抽取了方法声明,但没有抽取方法实现。

抽象类和一般类的区别:

         (1)抽象类可以定义抽象方法。

         (2)抽象类不可以建立对象。

         其实抽象类一样用于描述事物,既可以定义抽象方法,也可以定义非抽象方法。

2.接口:接口是java提供的一项非常重要的结构。它定义了一系列的抽象方法和常量,形成一个属性集合。接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口。实现接口的类必须实现接口中定义的方法,具体实现细节由类自己定义。可以说接口定义了类的框架,它实际是一种完全的抽象类。

          格式:

(1)通过interface关键字来定义。

(2)接口中常见成员:常量,抽象方法。而且这些成员都有固定的修饰符。常量:public static final。方法:public abstract。

(3)接口中的成员都是共有的。

(4)一个类可以对接口进行多实现,也弥补了多继承带来的安全隐患,所以java对多继承进行了改良:用多实现方法来体现多继承的特性。

(5)一个类可以继承一个类的同时,实现多个接口。

(6)接口与接口之间是继承关系,而且可以多继承。

         应用特点:

(1)接口是对外暴露的规则。

(2)接口是功能的扩展。

(3)接口的出现降低了耦合性。

3.抽象类和接口的异同:

相同:

(1)都可以在内部定义抽象方法。

(2)通常都在顶层。

(3)都不可以实例化,都需要子类来实现。

不同点:

(1)抽象类中可以定义抽象方法和非抽象方法,而接口中只能定义抽象方法。

(2)接口的出现可以多实现。抽象类只能单继承。也就是说:接口的出现避免了单继承的局限性。

(3)继承和实现的关系不一致。继承:is a,实现:like a

------- android培训java培训、期待与您交流! ----------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值