java—抽象类和接口有什么区别

简单的说,使用abstract修饰的类就是抽象类,抽象类中可以不包含抽象方法(由abstract修饰的方法),抽象类中也可以包含普通类中的方法和成员变量。一个普通类继承抽象类则必须实现该抽象类中的所有抽象方法,一个抽象类继承另一个抽象类则可以部分实现或者不实现其父类的抽象方法。

接口(interface)是对行为的抽象,接口的所有方法必须是抽象方法,其变量只能由public static final修饰。

两者区别亦如上述,同时接口中不可以包含静态代码块和静态方法,抽象类中可以包含;抽象类只能单继承,接口却可以被多实现

原文地址:https://www.cnblogs.com/jquery4java/p/8486284.html

时间: 2024-10-12 14:40:03

java—抽象类和接口有什么区别的相关文章

Java 抽象类和接口有什么区别

抽象类和接口有什么区别? 1. 抽象类在java语言中所表示的是一种继承关系,一个子类只能继承一个父类,但是可以实现多个接口. 2. 在抽象类中可以拥有自己的成员变量和非抽象类方法,但是接口中只能存在静态的不可变的(public static final)成员数据(不过一般都不在接口中定义成员数据),而且它的所有方法都是抽象的. 3.抽象类的子类可以部分实现父类中的抽象方法,但是它们本身也是抽象类; 而当类实现特殊接口时,它定义所有这种接口的方法. 4.抽象类和接口所反映的设计理念是不同的,抽象

Java抽象类与接口的区别

很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题.本文我们将仔细讨论这些话题. 在讨论它们之间的不同点之前,我们先看看抽象类.接口各自的特性. 抽象类 抽象类是用来捕捉子类的通用特性的 .它不能被实例化,只能被用作子类的超类.抽象类是被用来创建继承层级里子类的模板.以JDK中的GenericServlet为例: public abstract class GenericServlet implements Servlet, ServletC

C#.NET里面抽象类和接口有什么区别

1.面向接口编程和面向对象编程是什么关系 首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分.或者说,它是面向对象编程体系中的思想精髓之一. 2.接口的本质 接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一的名称,可以被类或其他接口所实现(或者也可以说继承).它在形式上可能是如下的样子: interface InterfaceName {     void Method1();     void

[转]java抽象类和接口

很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题.本文我们将仔细讨论这些话题. 在讨论它们之间的不同点之前,我们先看看抽象类.接口各自的特性. 抽象类 抽象类是用来捕捉子类的通用特性的 .它不能被实例化,只能被用作子类的超类.抽象类是被用来创建继承层级里子类的模板.以JDK中的GenericServlet为例: 1 2 3 4 5 6 7 8 9 public abstract class GenericServlet implements

浅析Java抽象类和接口的比较

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解.对于设计意图的理解是否正确.合理.本

JAVA抽象类和接口的深入探讨

Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. 本文将从下面几个方面深入探讨一下Java 抽象类和接口 一.抽象类语法及规范 二.接口的语法及规范 三.抽象类和接口的区别 ,将从语义细节及设计层面两方面来描述 本文由本人查阅资料并结合自己理解所作,如果有理解不到位的地方,欢迎各位斧正. 一.抽象类 抽象类使用 abstract class 来定

java抽象类和接口

1.抽象类 抽象类在概念上描述的是抽象世界,抽象类刻画了公有行为的特征,并且通过继承机制传送给它的派生类.抽象类使用关键字abstract 修饰,语法如下: abstract class 类名{ 类体; } 抽象方法是指在抽象类中某些成员方法没有具体的实现,只有方法声明.抽象方法使用关键字abstract 修饰,格式如下: public abstract 返回类型 方法名([参数列表]); 抽象类和抽象方法的具体规则如下: 1.用abstract 关键字修饰一个类时,该类叫做抽象类,用abstr

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实

抽象类和接口有什么区别

含有abstract 修饰符的class 即为抽象类,abstract 类不能创建的实例对象.含有abstract 方法的类必须定义为abstract class,abstract class 类中的方法不必是抽象的.abstract class 类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法.如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract 类型.接口(interface)可以说成是抽象类的一种特例,接口中的所有