什么是抽象类?什么是抽象方法,接口和抽象类有什么区别?

1.百度百科的官方解释是:使用了关键词abstract(adj.抽象的)声明的类叫作“抽象类”。所谓的抽象类就是没有实例对象的类。

那么问题来了,为什么抽象类不能被实例化,因为抽象类中的抽象方法只有名称,没有具体实现方法,无法被实例化,抽象类不能用final来修饰,

2.“抽象方法”:属于一种不完整的方法,只含有一个声明,没有方法主体。有抽象方法的类一定是抽象类。抽象类中不一定有抽象方法

举一个例子,百度知道看到的 如果你的程序里面需要用到苹果和梨这2个类..那么你可以分别给出这2个类
但是你会发现这2个类里面有共同的属性和方法(属性: 都有核.. 方法: 都需要削皮吃...)那么你可以建立抽象类 "水果" 把这些共同的东西都定义在那里. 那么你的2个子类就只需要实其他必要的东东了(味道, 价格...)
优点: 当你需要对苹果和梨做新的,共同的修改或者添加的时候. 你现在就可以直接对他们的超类 水果 做就可以了。

3.接口和抽象类有什么区别。

  1. 首先接口方法默认都是public的。所有的方法在接口中不能有实现(据说java8 可以有默认实现了),抽象方法可以是public protected 和default修饰,但是不能被private,static,final,native并列修饰
  2. 一个class可以实现多个接口,但是只能实现一个抽象类。
  3. 在设计来看,抽象是类,接口是行为。

 

原文地址:https://www.cnblogs.com/xiaosisong/p/10825029.html