抽象类与接口的区别与联系
在Jdk1.7中,下述说法中抽象类与接口的区别与联系正确的有哪些?
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。
另外,接口和抽象类在方法上有区别:
- 抽象类可以有构造方法,接口中不能有构造方法。
- 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
- 抽象类中可以有普通成员变量,接口中没有普通成员变量
- 抽象类中的抽象方法的访问类型可以是public,protected和默认类型
- 抽象类中可以包含静态方法,接口中不能包含静态方法
- 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型
- 一个类可以实现多个接口,但只能继承一个抽象类。
二者在应用方面也有一定的区别:
接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码。
抽象类与接口的区别与联系相关推荐
- 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...
无论你是新手Java 程序员,还是老手程序员,可能在实际开发中很少自己写抽象类. 但是抽象类在某些时候的功能很强大,可以保证子类中百分百实现父类中的方法 -- 普通类的弊端,消除子类的冗余代码 -- ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
- C#中抽象类和接口的区别
一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆 ...
- C#中抽象类和接口的区别与使用
一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们.另外 ...
- 1.13 抽象类和接口的区别
接口是一种特殊的抽象类,接口和抽象类的渊源颇深,有很大的相似之处,所以在选择使用谁的问题上很容易迷糊. 1)抽象类 在 Java 中,被关键字 abstract 修饰的类称为抽象类:被 abstrac ...
- C#抽象类与接口的区别【转】
C#抽象类与接口的区别[转] 一.抽象类: 抽象类是特殊的类,只是不能被实例化(可以用派生类实例化基类对象):除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法(当然它可以有普通方法 ...
- 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等
文章目录 1. Java创建对象有哪四种方式? 2. 什么是maven?maven的核心功能有哪些? 3. 什么是MVC?说说分层的好处. 4. Spring的两大核心技术是什么? 5. 什么是IOC ...
- Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】
视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] Java基础--学习笔记(零起点打开java ...
- C++中的抽象类以及接口的区别联系
一.抽象类和接口 抽象类: 抽象类是特殊的类,不能被实例化(将定义了纯虚函数的类称为抽象类):除此以外,具有类的其他特性: 重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法 ...
- 第三次学JAVA再学不好就吃翔(part38)--抽象类与接口的区别
学习笔记,仅供参考 文章目录 面向对象 接口 类和接口的关系 抽象类与接口的区别 案例学习 面向对象 接口 类和接口的关系 类与类的关系 继承关系,并且只能单继承,不能多继承,但是可以多层继承 类与接 ...
最新文章
- Javascript基础知识篇(5): 面向对象之链式调用
- 图灵访谈 | 王贝珊:乘风破浪的成长之路
- asp.net 上一条和下一条记录的显示
- 5分钟图解Hbase列式存储
- optee内存管理和页表建立
- Linux 下安装配置redis
- C++ 中复杂的声明
- .NET 6新特性试用 | 常量内插字符串
- P5268-[SNOI2017]一个简单的询问【莫队】
- TCP协议-握手与挥手
- linux内存映射函数mmap
- BugkuCTF-Crypto题奇怪的密码
- linux vi 出现下划线,Vim高亮当前行(显示为下划线)的解决方案
- 《信息学奥赛一本通 提高篇》
- 字符串分割函数strtok_r的用法
- 专访黄翀:东方航空到底用MongoDB做了什么,技术选型为何花落MongoDB?
- java 反射 设置属性_Java通过反射机制动态设置对象属性值的方法
- cuda8 cuda9 cudnn 安装与卸载
- 为Vue2集成UIkit
- hdu acmsteps 2.1.3 Cake
热门文章
- winfrom 去掉字符串空格
- XCode Installed!
- 海洋工作室——网站建设专家:全数据库比较工具
- 【Spring AOP】基于注解的 AOP 编程
- 更改ubuntu的mysql版本为指定版本
- 设计模式17_命令模式
- java基本数据类型自动转包装类_Java基础教程之基本类型数据类型、包装类及自动拆装箱...
- 为什么说堡垒机是企业IT运维的“安全终结者”?
- linux终端<Terminal>使用ping
- c++ 函数模板_C++函数模板(泛型编程)