首页 > 编程语言 >【JAVA】第十二节:抽象类与接口(详细介绍)

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

时间:2024-11-30 22:58:17浏览次数:9  
标签:第十二 JAVA 实现 子类 接口 抽象 抽象类 方法

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

目录

一、抽象类

1.1 抽象类是什么?

1.2 抽象类的特点

1.3 抽象类出现的意义

1.4 匿名对象

二、接口

2.1接口是什么?

2.2 接口的特点

2.3 接口与接口的关系

2.4 接口出现的意义

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 中多态的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别

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


标签:第十二,JAVA,实现,子类,接口,抽象,抽象类,方法
From: https://blog.csdn.net/qq_75234423/article/details/144107791

相关文章

  • JavaScript 的新数组分组方法
    对数组中的项目进行分组,你可能已经做过很多次了。每次都会手动编写一个分组函数,或者使用 lodash 的 groupBy 函数。好消息是,JavaScript现在有了分组方法,所以你再也不必这样做了。Object.groupBy 和 Map.groupBy 这两个新方法将使分组变得更简单,并节省我们的时间或依赖性......
  • Java面试要点49 - Java ArrayList与LinkedList性能对比
    文章目录一、引入二、底层结构对比2.1ArrayList的实现原理2.2LinkedList的实现原理三、性能测试实战3.1测试代码实现四、性能特征分析4.1顺序添加性能4.2随机访问性能五、实际应用场景示例5.1数据缓存实现5.2消息队列实现六、总结一、引入在Java程序开......
  • Java面试要点50 - List的线程安全实现:CopyOnWriteArrayList
    文章目录一、引入二、实现原理解析2.1写时复制机制2.2读写分离策略三、性能测试分析四、应用场景分析4.1事件监听器管理4.2缓存实现五、最佳实践建议5.1性能优化技巧5.2常见陷阱规避总结一、引入在并发编程中,线程安全的集合类扮演着重要角色。CopyOnWri......
  • Java日志手机号脱敏工具类
    背景在开发过程中,很容易将用户敏感信息,例如手机号码、身份证等,打印在日志平台。为了保护用户数据,又不影响日志的打印,需要将日志中的敏感信息进行脱敏。效果没看明白,强烈建议pull项目,执行一下项目中SensitiveUtils#main方法。特性支持多层级Json/对象字段脱敏支持一次......
  • Java常见的锁策略
    目录Java常见的锁策略悲观锁和乐观锁轻量级锁和重量级锁自旋锁和挂起等待锁普通互斥锁和读写锁公平锁和非公平锁可重入锁和不可重入锁Java中的synchronized算哪种情况?系统原生的锁算哪种情况?synchronized的加锁过程,尤其是“自适应”是咋回事?synchronized中内置的优化策略......
  • ssm基于Java的高校教学业绩信息管理系统(10279)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项......
  • Java 数据脱敏?别慌,掩护队已经上线!
    引言大家好!今天我们要聊一聊数据脱敏。这个词听起来像特工电影里的高科技武器,其实它就是给敏感数据穿上“伪装衣”,防止“坏人”偷窥。无论是银行账号、身份证号码、邮箱地址,这些信息都需要时刻保持低调。如何低调?没错——数据脱敏,Java已准备好为你服务!1.什么是数据脱敏?......
  • 从高校就业信息管理系统到Python和Java类系统开题报告:结构化研究的提纲优化
    个人名片......
  • 大学生HTML期末大作业——HTML+CSS+JavaScript培训机构(画室)
    HTML+CSS+JS【培训机构】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计......
  • JavaWeb:Servlet (学习笔记)【1】
    目录一,Servlet介绍1,简介2,Servlet技术特点3,Servlet在应用程序中的位置4,Servlet在程序中到底处于一个什么地位?二,servlet运行过程:三,servlet路径配置四,Servlet的生命周期1,伪单例模式2,生命周期的步骤3,讲解Servlet是一个伪单例模式五,什么是生命周期啊?就是说什么时候有......