1. 抽象类:

(1).概念:抽象类是对一种事物的抽象,即对类抽。.抽象类是对整个类整体进行抽象,包括属性、行为。Java抽象类和Java接口一样,都用来声明一个新的类型。并且作为一个类型的等级结构的起点。

(2).格式:

public abstract class abstractDemo{

/**属性*/

private String name;

/**方法*/

public abstract void fun();

}

(3).说明:

A:抽象类中不一定有抽象方法,但是有抽象方法的类一定要定义为抽象类。

B:在Java语言中,类有两种,一种是具体类,另一种是抽象类。

具体类可以实例化,抽象类不可以实例化。

C:对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;

D:抽象方法只有声明,没有具体的实现。抽象类是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,就等于白白的创建了这个类。

E:对于一个父类,如果它的一个方法在父类中实现没有任何意义,必须根据子类的实际需求来进行不同的实现,那么就可以将这个方法声明为abstract方法,此时这个类也就成为了abstract抽象类。

2. 接口:

(1).概念:接口是对行为的抽象。接口是对类局部(行为)进行抽象。

(2).格式:

public interface test {

/** 抽象方法 */

public abstract void fun();

}

(3).说明:

接口中可以含有变量和方法,但是,接口中的变量会被隐式地指定为public static final。而方法会被隐式地指定为public abstract方法且只能是public abstract方法。

3. 接口和抽象类的区别与联系:

(1).抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。

(2).抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。

(3). 继承是一个 “是不是”的关系,而 接口 实现则是 “有没有”的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系。

(4).接口只给出方法的声明,不给出方法的实现。抽象类中可以有抽象方法的一般方法。如果是抽象方法的话,只有方法的声明。如果是一般方法的话,既有方法的声明,也有方法的实现。

4. 使用接口的原因:

(1).没有接口,可插入性就没有保证。因为Java是单继承的。

(2).在一个类等级结构中的任何一个类都可以实现一个接口,如果这个类实现了这个接口那么将会影响到此类的所有子类,但是不会影响到此类的所有父类。

(3).一个类最多有一个父类,但是可以同时实现几个接口。

5. 问题:

在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法,只是用abstract修饰的话也是抽象类。也就是说抽象类不一定必须含有抽象方法。因为如果一个抽象类不包含任何抽象方法,为何还要设计为抽象类?

个人理解:

抽象类目的是用来继承的,在定义上,可以没有抽象方法,只是用abstract修饰是没有语法错误的,但是没有哦实际意义。抽象类中的抽象方法是让子类继承抽象类,来实现抽象类中的抽象方法,根据子类的需求分别来实现不同的功能。

java中抽象类和接口的相同点和不同点_Java中接口和抽象类的区别与相同之处相关推荐

  1. [note]抽象类和接口的相同点和不同点

    今天偶尔看到以前的笔记,所谓温故而知新所以记录一下,以便以后查阅. 抽象类和接口的相同点和不同点 相同点: 1.都不能被直接实例化,都可以通过继承实现其抽象方法 2.都是面向对象的技术基础,实现了诸多 ...

  2. java定义接口区分飞机和汽车_JAVA菜鸟入门篇 - 抽象类、接口 (十九)

    一.抽象类 抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类. 为什么需要抽象类?如何定义抽象类? 是一种模板模式.抽象类为所有子类提供一个通用模板,子类可以再 ...

  3. 抽象类和接口的相同点与不同点

    在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象. 在计算机的世界里,用类来 ...

  4. 抽象类和接口的相同点和不同点

    相同点: 1.抽象类和接口都不能实例化对象,但是可以定义抽象类和接口类型的引用; 2.继承抽象类和实现接口都要对其中的抽象方法全部实现; 不同点: 1.接口比抽象类更加抽象,抽象类中可以定义构造方法( ...

  5. java中栈和堆都存哪些东西_java中栈内存与堆内存(JVM内存模型)

    java中栈内存与堆内存(JVM内存模型) Java中堆内存和栈内存详解1 和 Java中堆内存和栈内存详解2 都粗略讲解了栈内存和堆内存的区别,以及代码中哪些变量存储在堆中.哪些存储在栈中.内存中的 ...

  6. java 判断一个字符串是否由数字组成的_Java中怎样判断一个字符串是否是数字

    展开全部 1.使用Character.isDigit(char)判断 String str = "123abc"; if (!"".equals(str)) { ...

  7. java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法

    compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...

  8. java内部类为什么会持有外部类的引用_java中内部类为什么会持有外部类的引用?...

    当我们分析内存泄漏的场景时,总会想到不能在内部类中做耗时操作,因为它会持有外部类的因为,导致外部类的实例在生命周期结束的时候没有办法及时释放,这就造成了内存泄漏. 好像这就是一个公理一样,就是人们说着 ...

  9. java中static类的作用是什么意思_java中static关键字是什么意思

    java中static关键字是什么意思 发布时间:2020-11-11 11:01:11 来源:亿速云 阅读:86 作者:小新 这篇文章给大家分享的是有关java中static关键字是什么意思的内容. ...

最新文章

  1. python内存管理机制_[转] Python内存管理机制
  2. 字符串补充知识及列表类型
  3. Windows核心编程 第十四章 虚拟内存
  4. win10家庭版远程桌面连接出现身份验证错误
  5. 单元测试mock当前时间
  6. android 子module混淆_Android 多模块打包混淆填坑记
  7. python绘制子图去掉x轴坐标值_python – 关闭图形的所有子图的轴
  8. 串口通信以及波特率计算方法
  9. 求素数平均值c语言,C 输入10个正整数到a数组中,求a数组中素数的平均值.
  10. 计算机的k代表什么意思,电脑CPU后缀K、U、HQ、M分别代表什么你清楚吗?
  11. 希腊字母 和 他的发音 Greek Alphabet and its Pronunciation
  12. The Truman Show
  13. 启用计算机的快捷键,电脑启动热键对照表
  14. DICTATOR第三周栈与队列作业
  15. 系统硬盘分区模式之GPT
  16. 分布式矩阵和分布式kvm的区别
  17. 科技宜信让金融充满AI
  18. python计算球的体积的函数设计
  19. [SMOJ2095]Bug2
  20. SSM毕设项目 - 基于SSM的企业公寓宿舍后勤管理系统(含源码+论文)

热门文章

  1. 伦敦银的换算,怎么算?
  2. 1、CC2530单片机介绍
  3. 产品设计2.3五要素-③ 结构层
  4. 百度搜索命令与谷歌搜索命令汇总
  5. OFDM循环前缀及其作用(矩阵视角解释)
  6. react input 只读
  7. MySQL OCP考试记
  8. 台式电脑计算机未输出任何信号源,电脑开不了机怎么办 驱动人生教你拯救电脑...
  9. APP专项测试:流量测试
  10. Pycharm学生邮箱登录错误:Certificate used to sign the license is not signed by JetBrains root certificate (2)