抽象类和接口的联系和区别

xidian2014 xidian2014     2023-02-25     378

关键词:

抽象类:

抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。

抽象类可以拥有成员变量和普通的成员方法。

抽象类和普通类的主要有三点区别:
1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

 接口:

接口中的变量会被隐式地指定为public static final变量,并且只能是public static final变量,用private修饰会报编译错误,而方法会被隐式地指定为public abstract方法且只能是public abstract方法,用其他关键字,比如private、protected、static、 final等修饰会报编译错误,并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。

抽象类和接口的区别:
语法层面上的区别
1)一个类只能继承一个抽象类,而一个类却可以实现多个接口;
2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
4)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法;
5)抽象类的抽象方法可以是public,protected,default类型,而接口的方法只能是public。
设计层面上的区别
1)抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。
2)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。














抽象类和接口的联系和区别

抽象类:抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类可以拥有成... 查看详情

java-接口和抽象类的联系和区别。

接口和抽象类的联系和区别。 一,简单总结   1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。  2、抽象类要... 查看详情

抽象类和接口

问题出现:我们在使用C#的抽象类和接口的时候,往往会遇到以下类似的问题,大致归纳如下:(1)抽象类和接口有什么本质的区别和联系?(2)什么时候选择使用抽象类,然啥时候使用接口最恰当呢?(3)在项目中怎样使用才能使得项... 查看详情

我是如何理解java抽象类和接口的

在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的... 查看详情

抽象类和接口的区别

抽象类和接口的区别一、抽象类与接口的相同之处  1、抽象类和接口都不能被实例化,都用于被其他类实现或继承  2、他们都可以包含抽象方法,并且在其他类继承或实现的时候都必须实现这些抽象方法 二、抽象类与... 查看详情

抽象类和接口的区别

查看详情

抽象类和接口区别

简述抽象类和接口区别 ①   Abstract修饰符:抽象类不能省略;接口省略②   子类和实现类:抽象类的子类继承抽象类,单继承;接口的实现类实现接口,多实现;③   继承:抽象类单继承;... 查看详情

抽象类和接口有什么区别

JDK7中抽象类和接口的区别JDK8新特性:接口的静态方法和默认方法 查看详情

抽象类和接口的区别

接口和抽象类的区别:1.接口的所有方法都是抽象的,抽象类里面的方法可以是抽象的也可以不是抽象的;2.接口和抽象类都不能实例化,接口需要类来实现后实例化实现类,抽象类需要类来继承然后实例化子类;3.抽象类只能单... 查看详情

抽象类和接口的区别

1.抽象类中可以有普通成员变量,接口中没有普通成员变量。2.抽象类和接口中都可以包含静态成员变量,抽象类中静态成员变量的访问类型是任意的,接口中必须为(publicstaticfinal)(默认)。3.抽象类可以包含非抽象的普通方法,接... 查看详情

抽象类和接口的区别

抽象类和接口的对比参数抽象类接口默认的方法实现它可以有默认的方法实现接口完全是抽象的。它根本不存在方法的实现实现子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方... 查看详情

抽象类和接口的区别

抽象类和接口的对比参数抽象类接口默认的方法实现它可以有默认的方法实现接口完全是抽象的。它根本不存在方法的实现实现子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方... 查看详情

抽象类和接口的区别

...虑  1.成员变量:接口的成员变量默认publicstaticfinal,抽象类成员变量和普通类一样  2.构造方法:接口没有构造方法  3.成员方法:接口的成员方法默认publicabstract,有抽象方法的类一定是抽象类,抽象类不一定有抽象方... 查看详情

抽象类和接口之间的区别[重复]

】抽象类和接口之间的区别[重复]【英文标题】:Differencebetweenabstractclassandinterface[duplicate]【发布时间】:2011-04-0719:51:52【问题描述】:可能重复:InterfacevsBaseclass我不理解抽象类和接口之间的区别。我什么时候需要使用哪种类型... 查看详情

接口和抽象类的区别

区别  接口和抽象类相比,最大的区别就在于子类上,接口的子类可以同时实现多个接口,但抽象类的子类只能实现单根继承。  抽象类要被子类继承,接口要被类实现。  接口只能做方法申明,抽象类中可以做方法申明... 查看详情

抽象类和接口有啥区别? [复制]

】抽象类和接口有啥区别?[复制]【英文标题】:What\'sthedifferencebetweenanabstractclassandaninterface?[duplicate]抽象类和接口有什么区别?[复制]【发布时间】:2013-02-1703:55:25【问题描述】:假设我们在一个接口中有两个方法M1()和M2()。一... 查看详情

抽象类和接口的区别

接口是抽象类的变体,接口中所有的方法都是抽象的,而抽象类是声明方法的存在而不去实现它的类接口可以多继承,抽象类不行接口定义的方法,不能实现,而抽象类可以实现部分类接口中基本数据类型为static而抽象类不是接... 查看详情

java抽象类和接口的区别

 成员区别抽象类:成员变量:可以变量,也可以常量构造方法:有成员方法:可以抽象,也可以非抽象 接口:成员变量:只可以是常量成员方法:只可以抽象 关系区别类与类:继承,单继承 类与接口:实现,单... 查看详情