美文网首页java基础
java class和interface区别

java class和interface区别

作者: yezi1989 | 来源:发表于2018-07-07 16:08 被阅读9次

在Java中,实现 抽象的机制有2种:抽象类(abstract class)和接口(Interface)

image.png

1、抽象类(abstract class)


image.png

2、 接口(Interface)

image.png

3、两者区别

image.png
  1. 实例讲解

下面给出1个简单的例子,让大家更好地去理解二者的区别 & 应用场景

4.1 需求描述

需求1:有1类门,其本质功能 = 开门 & 关门
需求2:为上述这类门增加1个报警器,可进行报警
4.2 需求实现

该需求的实现方案有3种,均可完成需求:

1=只使用抽象类、2=只使用接口、3=同时使用抽象类 & 接口

具体请看如下:

// 方案1:只使用抽象类
abstract class Door{  
  abstract void open();  
  abstract void close();  
  abstract void alarm();  
}  

// 具体使用时
class AlarmDoor extends Door {  
  void open(){}  
  void close(){}  
  void alarm(){}  
} 

// 方案2:只使用接口
interface Door{  
  void open();  
  void close();  
  void alarm();  
}  

// 具体使用时
class AlarmDoor implements  Door {  
  void open(){}  
  void close(){}  
  void alarm(){}  
} 


// 方案3:同时使用抽象类 & 接口
// 对于需求1 = 抽象1类事物,即 使用抽象类
abstract class Door{  
  abstract void open();  
  abstract void close();  
}  

// 对于需求2 = 抽象事物中的某个行为, 即 使用 接口
interface Alarm{  
  void alarm();  
}  

// 具体使用时
class AlarmDoor extends Door implements Alarm{  
  void open(){}  
  void close(){}  
  void alarm(){}  
} 

虽然3种实现方式均可完成需求,可是,明显使用方案3 更加符合 抽象类 & 接口的使用.

非常形象。
参考:https://www.jianshu.com/p/d8f06ad45135

相关文章

网友评论

    本文标题:java class和interface区别

    本文链接:https://www.haomeiwen.com/subject/wyawuftx.html