面试题之接口和抽象类的区别
一、简介
本文总结最常见的面试题之一:接口和抽象类的区别。
二、区别
如下表所示:
区别 |
Interface接口 |
Abstract class(含有抽象方法的类成为抽象类) |
声明方式 |
interface |
abstract |
使用方式 |
implements |
extends |
修饰符 |
接口方法默认修饰符是public。你不可以使用其它修饰符。 |
抽象方法可以有public、protected和default这些修饰符 |
main方法 |
接口没有main方法,因此我们不能运行它。(java8以后接口可以有default和static方法,所以可以运行main方法) |
抽象方法可以有main方法并且我们可以运行它 |
特性 |
1. 接口中的所有变量都是public static final 2. 接口中的所有方法都是抽象方法 3. 可以同时实现多个接口 |
1. 抽象类可以有抽象方法,也可以没有。可以有普通方法,也可以没有 2. 普通类继承抽象类,必须实现其中的抽象方法,如果不实现,那么必须也是抽象类 3. 一个普通类只能继承一种抽象类 4. 一个抽象类实现了一个接口,可以不实现其抽象方法 |
实例化 |
不能实例化 |
不能实例化 |
构造函数 |
接口没有构造方法 |
抽象类可以用构造方法 |
成员变量和方法 |
必须是静态常量和抽象方法,不能含有静态代码块以及静态方法 |
可以有成员变量和成员方法,可以有静态代码块和静态方法 |
说明 |
接口是特征,是对一种行为的抽象,比如,鸟类拥有的特征是飞。 |
抽象类是内容,是对一种事物的抽象,比如,鸟类是所有鸟的抽象。 |
使用示例 |
public interface IStudent { public static final String NAME = "ABC"; public abstract void test(); default void test1(){ } static void test2() { } } |
public abstract class AbsClass { private int a; public AbsClass(int a) { this.a = a; } public AbsClass() { } public void test() { } public abstract void test2(); } |
面试题之接口和抽象类的区别相关推荐
- 面试题:接口和抽象类的区别
区别一,两者表达的概念不一样.抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于"是"的关系:而接口是定义行为规范,因此对于实现接口的子类来说,相对于接 ...
- java接口和抽象类的区别
Java基础之接口与抽象类的区别 1.基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类, ...
- Java基础之接口与抽象类的区别
1.基本语法区别 Java中接口和抽象类的定义语法分别为interface与abstract关键字. 抽象类:在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修饰的方法 ...
- java 关注公众号没有调接口_高频面试题:接口和抽象类的区别
作为一个基础的Java高频面试题,是所有Java面试者必须烂熟于心的.当然不能死记硬背,可以通过实际地写几个小demo,边实际操作边理解,既能感受到编程的快乐,更重要的是真的理解记住了二者的区别. 此 ...
- java接口和抽象类的区别(经典面试题)
java接口和抽象类的区别(经典面试题) 要了解接口和抽象类的区别,首先需要明白接口和抽象类的定义. 1.抽象类 包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可 ...
- 接口和抽象类的区别(面试题)
接口和抽象类的区别(*) 语法上 相同点 接口和抽象类都能定义属性和方法 接口和抽象类都只是特殊的类,都是通过子类来操作 抽象类和接口中都可以没有抽象方法 接口和抽象类都不能直接创建对象 接口和抽象类 ...
- Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)
前言引入 官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 我的 ...
- python接口和抽象类的区别_接口和抽象类有什么区别?
最近团队在招人:阿里新零售事业群CBU技术部招Java高级&专家,团队主要负责B2B工业品牌业务,坐标杭州滨江,有兴趣的小伙伴私戳我. **************************** ...
- 接口与抽象类的区别和联系
接口 1.因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但是可以实现多个接口,同时接口本身也可以继承多个接口. 2.接口里面的成员变量默认是public static final类 ...
- 接口和抽象类的区别?
接口和抽象类的区别? 我先来说说它们俩在语法上的区别吧,然后再来谈谈我的个人理解. 抽象类可以有具体的方法和属性, 接口只能有抽象方法和常量. 抽象类使用abstract修饰,接口使用interfa ...
最新文章
- 同盾反欺诈云防垃圾灌水帖体验分享
- NR 5G UE和5G网络功能之间的安全流程
- 通过jS打包下载图片
- Windows 环境下 Chrome浏览器崩溃“STATUS_INVALID_IMAGE_HASH”
- 经典面试题(9):以下代码将输出什么?并解释你的答案。
- Visual Studio.NET 无法创建或打开应用程序之解决方法
- 多项logistic回归系数解释_逻辑回归logistic(含python代码)
- WINRAR密码去除/破解工具
- 计算机毕业设计【HTML+CSS+JavaScript服装购物商城】毕业论文源码
- 魔方cfop公式软件_魔方与群论(一)(不要被标题吓到,高中生就可以看)
- Windows下使用chkdsk修复移动硬盘/磁盘
- 程序猿的情怀 语录(三)
- axure rp pro 9.0授权密钥
- ios6 屏幕旋转总结
- archivelog模式和flashback db以及guarantee restore point之间的相互制约关系!
- 华为路由器命令手册_用数据说话,华为路由Q2 Pro与网件R7800对比测评
- kali2021 JDK配置与安装(独一无二的详细)
- 【蓝桥杯程序设计大赛感想】 一路艰辛 一路收获
- 需求分析阶段的各个步骤
- 中职计算机公开课说课稿,校内公开课说课稿
热门文章
- kaggle:Costa Rican Household Poverty Level Prediction(2):Base line
- C/C++[codeup 2026]日期类
- Charles Https 请求 SSL乱码问题 charles unreadable
- 巨人 index.php/user/login,dedecms实现首页顶部会员登陆框的方法
- 足球比赛两强相遇概率
- uva1583-digit generator
- python 京东 价格_python根据京东商品url获取产品价格
- [LeetCode][easy]Create Target Array
- Affymetrix基因芯片小总结
- 我的世界android制作教程,《我的世界手机版》怎么制作mod制作JS教程图文攻略