在Jdk1.7中,下述说法中抽象类与接口的区别与联系正确的有哪些?

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

另外,接口和抽象类在方法上有区别:

  1. 抽象类可以有构造方法,接口中不能有构造方法。
  2. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
  3. 抽象类中可以有普通成员变量,接口中没有普通成员变量
  4. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型
  5. 抽象类中可以包含静态方法,接口中不能包含静态方法
  6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型
  7. 一个类可以实现多个接口,但只能继承一个抽象类。

二者在应用方面也有一定的区别:

接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码。

抽象类与接口的区别与联系相关推荐

  1. 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...

    无论你是新手Java 程序员,还是老手程序员,可能在实际开发中很少自己写抽象类. 但是抽象类在某些时候的功能很强大,可以保证子类中百分百实现父类中的方法 -- 普通类的弊端,消除子类的冗余代码 -- ...

  2. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  3. C#中抽象类和接口的区别

    一.抽象类:       抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆 ...

  4. C#中抽象类和接口的区别与使用

    一.抽象类: 抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们.另外 ...

  5. 1.13 抽象类和接口的区别

    接口是一种特殊的抽象类,接口和抽象类的渊源颇深,有很大的相似之处,所以在选择使用谁的问题上很容易迷糊. 1)抽象类 在 Java 中,被关键字 abstract 修饰的类称为抽象类:被 abstrac ...

  6. C#抽象类与接口的区别【转】

    C#抽象类与接口的区别[转] 一.抽象类:      抽象类是特殊的类,只是不能被实例化(可以用派生类实例化基类对象):除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法(当然它可以有普通方法 ...

  7. 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等

    文章目录 1. Java创建对象有哪四种方式? 2. 什么是maven?maven的核心功能有哪些? 3. 什么是MVC?说说分层的好处. 4. Spring的两大核心技术是什么? 5. 什么是IOC ...

  8. Java11-day02【多态(成员访问、多态转型、内存图解)、抽象类(成员特点)、接口(成员特点)、类和接口的关系、抽象类和接口的区别、综合案例】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  9. C++中的抽象类以及接口的区别联系

    一.抽象类和接口 抽象类: 抽象类是特殊的类,不能被实例化(将定义了纯虚函数的类称为抽象类):除此以外,具有类的其他特性: 重要的是抽象类可以包括抽象方法,这是普通类所不能的,但同时也能包括普通的方法 ...

  10. 第三次学JAVA再学不好就吃翔(part38)--抽象类与接口的区别

    学习笔记,仅供参考 文章目录 面向对象 接口 类和接口的关系 抽象类与接口的区别 案例学习 面向对象 接口 类和接口的关系 类与类的关系 继承关系,并且只能单继承,不能多继承,但是可以多层继承 类与接 ...

最新文章

  1. Javascript基础知识篇(5): 面向对象之链式调用
  2. 图灵访谈 | 王贝珊:乘风破浪的成长之路
  3. asp.net 上一条和下一条记录的显示
  4. 5分钟图解Hbase列式存储
  5. optee内存管理和页表建立
  6. Linux 下安装配置redis
  7. C++ 中复杂的声明
  8. .NET 6新特性试用 | 常量内插字符串
  9. P5268-[SNOI2017]一个简单的询问【莫队】
  10. TCP协议-握手与挥手
  11. linux内存映射函数mmap
  12. BugkuCTF-Crypto题奇怪的密码
  13. linux vi 出现下划线,Vim高亮当前行(显示为下划线)的解决方案
  14. 《信息学奥赛一本通 提高篇》
  15. 字符串分割函数strtok_r的用法
  16. 专访黄翀:东方航空到底用MongoDB做了什么,技术选型为何花落MongoDB?
  17. java 反射 设置属性_Java通过反射机制动态设置对象属性值的方法
  18. cuda8 cuda9 cudnn 安装与卸载
  19. 为Vue2集成UIkit
  20. hdu acmsteps 2.1.3 Cake

热门文章

  1. winfrom 去掉字符串空格
  2. XCode Installed!
  3. 海洋工作室——网站建设专家:全数据库比较工具
  4. 【Spring AOP】基于注解的 AOP 编程
  5. 更改ubuntu的mysql版本为指定版本
  6. 设计模式17_命令模式
  7. java基本数据类型自动转包装类_Java基础教程之基本类型数据类型、包装类及自动拆装箱...
  8. 为什么说堡垒机是企业IT运维的“安全终结者”?
  9. linux终端<Terminal>使用ping
  10. c++ 函数模板_C++函数模板(泛型编程)