【JAVA】第十二节:抽象类与接口(详细介绍)

上一篇详细介绍了面向对象多态的知识,这篇来说说抽象类与接口。

目录

一、抽象类

[1.1 抽象类是什么?](#1.1 抽象类是什么?)

[1.2 抽象类的特点](#1.2 抽象类的特点)

[1.3 抽象类出现的意义](#1.3 抽象类出现的意义)

[1.4 匿名对象](#1.4 匿名对象)

二、接口

2.1接口是什么?

[2.2 接口的特点](#2.2 接口的特点)

[2.3 接口与接口的关系](#2.3 接口与接口的关系)

[2.4 接口出现的意义](#2.4 接口出现的意义)

[2.5 接口的实现案例](#2.5 接口的实现案例)

三、抽象类和接口的区别


一、抽象类

1.1 抽象类是什么?

抽象类名字抽象,理解起来不抽象,顾名思义,抽象类 也只是一个特殊点的类,特殊在哪呢,

抽象类 只能被继承使用 ,它本身就像一个模 板,里面的方法 都没有具体实现的内容 ,这些方法叫抽象方法, 在面向对象编程中常用于定义通用的行为规范 ,给子类 提供一个模板

1.2 抽象类的特点

1.抽象方法 必须包含在抽象类中 ,一个类内有抽象方法,那它一定是抽象类


2.抽象类 中的方法不需要实现


3.抽象类不能被实例化


4.抽象方法不能是 private 的


5.抽象方法不能有 final 和 static 修饰

6.抽象类的子类如果也抽象,子类可以不必去重写方法,直到子类不抽象,所有方法都实现


1.3 抽象类出现的意义

前面也说了抽象类就是一个给子类准备的模板,它的存在意义就是为了让子类去继承他,实现抽象类中的各种方法,可以说抽象类就是为了继承而生的。虽然普通类也都能做到,但是使用抽象类相当于多了一重编译器的校验。


1.4 匿名对象

匿名对象 是指没有被命名的对象 。通常直接创建使用 new + 类名 ,仅在一个地方使用,匿名对象的生命周期很短暂,一旦使用完成就被销毁,无法再被访问。

匿名对象适用于一些简单、临时的操作。



二、接口

2.1接口是什么?

生活中的插座口,usb插口,都是接口

在编程中接口 是一种定义了类或对象应该具备的行为、属性或方法的规范 ,接口就是一种行为的抽象,它定义了一组相关的方法,用来描述一个类的行为能力。通过实现接口,类可以表明它具备了某种特定的行为能力

简单来说一个接口就是一个功能,比如狗会跑,鸡会跑,那他们可以实现一个IRunning接口,用来表明它们都可以跑,同理 鱼会游泳,人会游泳,就实现ISwiming接口,人还会跑,就再实现IRunning接口,这就是接口。

2.2 接口的特点

1.接口的成员变量默认被public static final 修饰


2.接口中的方法默认都是 public abstract


3.如果抽象中的方法前加上 defualt/static 就可以对方法进行实现了


4.接口也不能实例化


5.类通过 implements 去实现接口


6. 抽象类实现接口后可以不从重写接口的方法,但是它的子类必须实现


7.接口中不能有静态代码块和构造方法


2.3 接口与接口的关系

接口与接口之间可以继承,一个接口可以继承多个接口


2.4 接口出现的意义

通过上面的介绍,我们认识到了接口,接口的意义 就是弥补 了java不能多继承 的缺点,通过不同的接口,表明自己这个类的特性与特定功能


2.5 接口的实现案例

接口可以做到类能做到大部分事情,包括多态,下面案例展示



三、抽象类和接口的区别

抽象类接口 都是 Java 中多态 的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别

核心区别: 抽象类中 可以包含普通方法普通字段 , 这样的普通方法字段可以被子类直接使用 (不必重写), 而接口不能包含普通方法 , 子类必须重写所有的抽象方法


相关推荐
程序员_三木4 分钟前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
LuH11246 分钟前
【论文阅读笔记】Learning to sample
论文阅读·笔记·图形渲染·点云
兔C11 分钟前
微信小程序的轮播图学习报告
学习·微信小程序·小程序
是小崔啊14 分钟前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
海海不掉头发18 分钟前
苍穹外卖-day05redis 缓存的学习
学习·缓存
tianmu_sama20 分钟前
[Effective C++]条款38-39 复合和private继承
开发语言·c++
黄公子学安全23 分钟前
Java的基础概念(一)
java·开发语言·python
liwulin050624 分钟前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr
jackiendsc29 分钟前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
Yuan_o_29 分钟前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端