java java面向对象-接口和抽象类的区别

原创 2018年04月16日 19:18:51

20180406 java java面向对象-接口和抽象类的区别


Interface Graph
{
  //求面积
  Double getArea();


}




//圆
class Circle implements Graph
{
  private Integer r;//半径
  Circle (Integer r)
  {
    this.r = r;
  }


  //求面积
  public Double getArea()
  {
    return 3.14 * r * r;
  }
}








从java8开始,接口中可以定义默认方法,有方法体。
java8的这个改进 颠覆了java之前的很多设计。模板方法设计模式就不再存在了。


java8中还可以定义静态方法。






上面都是一些开胃小菜,本文重点介绍接口和抽象类的区别:


一、相同点:
1)都位于继承的顶端,用于被其他实现或继承。
2)都不能实例化。
3)都可以定义抽象方法,其子类或实现类都必须复写这些抽象方法。


二、区别:


1)接口中没有构造方法,抽象类有构造方法。
2)抽象类可以包含普通方法和抽象方法,接口只能包含抽象方法(这条只针对java8之前说的)。
3)一个类只能继承一个父类(可能是抽象类),即体现单继承关系,而接口是多继承的并且支持一个类实现多个接口(这样就弥补了java的单继承特性)。
4)成员变量:在接口里默认是public static final修饰的,而抽象类的默认的是包访问权限。
5)方法 :在接口里默认是public abstract修饰的,而抽象类的默认的是包访问权限。
6)内部类 :在接口里默认是public static修饰的,而抽象类的默认的是包访问权限。






如果接口和抽象类可以完成相同的功能,那么我们该如何选择呢? 
答:尽量使用接口,要体现面向接口的编程思想。
















































































面向对象中接口和抽象类的区别

从表象上来说: 1、抽象类可以给出一些成员的实现,接口却不包含成员的实现; 2、抽象类的抽象成员可被子类部分实现,接口的成员需要实现类完全实现; 3、一个类只能继承一个抽象类,但可以实现多...
  • u010784236
  • u010784236
  • 2015-01-23 17:53:49
  • 1731

面向对象(多态,抽象类,接口的比较)

(一)面向对象(多态) 多态概述: 多态实质上是同一个对象相应不同消息的能力,你理解不了也可以把它理解为事物存在的多种形态. 当然了能够理解实质当然更好. 多态的前提: 要有继承关系, 要有方法重...
  • tongzhengtong
  • tongzhengtong
  • 2015-09-10 23:32:48
  • 1706

<Java>接口与抽象类,区别以及使用场景

顺便做个记录 接口和抽象类应该是Java语法中最常见的两个概念 关于两者,网上也是一搜一吨的对比,总体如下: 1,抽象类的成员可以具有访问级别 接口的成员全部public级别 2,抽象类可以包含...
  • jjjjjj123321
  • jjjjjj123321
  • 2017-01-06 11:42:11
  • 2832

java接口和抽象类的区别和作用(功能、用途、好处)

一、区别 interface:只有方法没有具体实现 abstract class:方法可以有具体实现,或者是abstract抽象方法 二、优点 interface:主要针对于功能、动作。将拥有这些动作...
  • sawelly
  • sawelly
  • 2016-02-02 15:48:12
  • 2580

JAVA-抽象类和接口的区别总结

首先.抽象类和接口都很好的提供了一种将实现和接口分离的方法..  一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并不是所有的类都是来描述对象的。如果一个类没...
  • oshirdey
  • oshirdey
  • 2014-07-26 15:07:53
  • 1557

JAVA中接口和抽象类的区别?

原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实...
  • u010355144
  • u010355144
  • 2015-04-08 18:04:19
  • 751

Java中抽象类和接口的区别与作用详解

  • 2010年03月23日 10:40
  • 144KB
  • 下载

Java 抽象类、普通类、接口的区别——值得你一看的干货

【概念】 抽象类、具体类是相对的,并非绝对的。抽象是一种概念性名词,具体是一种可见可触摸的现实对象。概念越小,则其抽象程度就越大,其外延也越大,反之亦然。简单说,比如“人”比“男人”抽象...
  • csdn_aiyang
  • csdn_aiyang
  • 2017-05-04 16:26:31
  • 5725

面试常见题---------java中抽象类跟接口的区别

含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不...
  • huangchunwju
  • huangchunwju
  • 2014-04-23 11:31:16
  • 1088

java语言中关于抽象类和接口的区别(面试经常问到,因此总结一下)

写下这篇文章的原因是基本上是在自己面试的时候很多公司都问我们这个问题,但是此前自己回答的都比较模糊,抓不到重点,毫无规律,特此在这总结一下。          先对他们进行说明:           ...
  • u014492098
  • u014492098
  • 2014-12-06 09:51:19
  • 2121
收藏助手
不良信息举报
您举报文章:java java面向对象-接口和抽象类的区别
举报原因:
原因补充:

(最多只允许输入30个字)