Java09:抽象类和接口

  • 6 抽象类和`接口`
    • 6.1 抽象类
    • 6.2 接口

6 抽象类和接口

6.1 抽象类

抽象类,也是类,所以它只有单继承。
1)abstract修饰符可以用来修饰方法 也可以修饰类。如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类;
2)抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类;

3)抽象类不能使用 new关键字来创建对象,它只是被类继承的,但是可以有普通方法;
4)抽象方法,只有方法的声明没有方法的实现;它只是被子类实现的;

5)子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。

package com.g.abstraction;public abstract class Action {/* abstract 修饰方法。抽象方法:只有方法名,没有方法的实现它就是一个约束,由继承类实现该方法*/public abstract void say();/*1.抽象方法:抽象方法只能在抽象类中存在。2.抽象类:a.不能 new这个抽象类,只能由子类去实现;b.抽象类中可以有 普通方法。3.抽象类的作用:简化开发,提高开发效率*/
}

抽象类也有构造器:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//package com.g.abstraction;public abstract class Say {public Say() {}
}

6.2 接口

class是声明类的关键字 ;abstract是修饰类的关键字;interface是声明接口的关键字;
接口不是类,它可以单继承 也可以多继承。
接口的作用:有约束和实现分离的作用,达到面向接口编程的程度。

普通类:只有具体实现;
抽象类:具体实现和规范(抽象方法)都有;
接口:只有规范专业的约束(内部只能写抽象方法)。

1)接口就是规范,他定义的是一组规则,体现了现实生活中的“如果你是…则必须能…”的思想;
2)接口的本质:是契约。就像法律,制定好后就必须遵守。
3)面向对象(Object Oriented,缩写为OO)的精髓:是对 对象的抽象,最能体现这一点的就接口。讨论设计模式时,都是针对具备了抽象能力的语言(如C++、Java、C#等)的原因,是因为设计模式所研究的就是如何合理的去抽象。

package com.h.interfaces;
// interface 接口_1
public interface UserService {/*2.可以定义常量,默认是:public static final实际使用中,一般不在这里定义*/int AGE= 18;/* 1.接口中所有的定义都是抽象的,默认是:public abstract*/public abstract void add(String name);void deleter();
}
package com.h.interfaces;
// 接口_2
public interface TimeService {void time();
}
package com.h.interfaces;/*** 1.抽象类通过 extends 继承父类(单继承);* 2.类通过 implements实现接口(可以是多个接口);* 3.实现了接口的类,就需要重写接口中的方法*/
public class UserServiceImpl implements UserService,TimeService {@Overridepublic void add(String name) {}@Overridepublic void deleter() {}@Overridepublic void time() {}
}

接口作用总结:

  1. 接口是约束;
  2. 接口定义了一些方法,可以让不同的人实现;
  3. 接口中的方法默认是 public static 修饰;
  4. 接口中的常量默认是 public static final 修饰;
  5. 接口不能被实例化,它没有构造器(构造方法),抽象类是有构造器的;
  6. 用 implement 可以实现多个接口;
  7. 实现类必须要重写接口中的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G前装搭载率即将迈过10%大关,车载通讯进入多层次增长通道

对于智能化来说,车载通讯性能的提升,对于相关功能的用户体验优化、进一步减少通讯时延以及打开应用新空间,至关重要。 目前,2G/3G正在进入运营商逐步关闭运营的阶段,4G依然是主力,但5G也在迎来新的增长机会…

第7章-第7节-Java中的TreeMap和HashTable以及collections工具类

1、TreeMap: 1)、 概述 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的 2)、 特点 键值对映射关系 一个键对应一个值 键不能重复,值可以重复 键允许为空值 元素有序(具体的排序规则有Comparable 或者…

imazing破解版百度云2.17.3(附激活许可证下载)

iMazing是一款强大的 iOS 设备管理软件,不管是 iPhone、iPad 或 iPod Touch 设备,只要将 iOS 设备连接到计算机,就可以处理不同类型的数据。 iPhone 和 iPad 备份 借助 iMazing 的独有 iOS 备份技术(无线、隐私和自动&#xff09…

强化学习的数学原理学习笔记 - 策略梯度(Policy Gradient)

文章目录 概览:RL方法分类策略梯度(Policy Gradient)Basic Policy Gradient目标函数1:平均状态值目标函数2:平均单步奖励🟡PG梯度计算 🟦REINFORCE 本系列文章介绍强化学习基础知识与经典算法原…

速卖通跨境智星:解决IP及环境问题,实现批量注册轻松搞定

如果想要注册大批量的速卖通买家号,关键问题之一就是IP及浏览环境的管理。为了确保每个账号都能独立运行,使用独立的IP是必不可少的。近期,速卖通跨境智星备受关注,支持绑定代理IP,并内置反指纹技术,为用户…

WinForms中的UI卡死

WinForms中的UI卡死 WinForms中的UI卡死通常是由于长时间运行的操作阻塞了UI线程所导致的。在UI线程上执行的操作,例如数据访问、计算、文件读写等,如果耗时较长,会使得UI界面失去响应,甚至出现卡死的情况。 解决方法 为了避免…

USACO(美国计算机竞赛)详细介绍 如何备赛 训练资料整理

竞赛简介: USACO(美国信息学奥林匹克竞赛)初次举办于1992年,其官网是美国一个著名在线题库,更是美国中学生的官方竞赛网站,开设目的是为每年夏季举办的国际信息学奥林匹克竞赛(IOI)…

深度学习——R-CNN目标检测原理

R-CNN系列算法需要先产生候选区域,再对候选区域做分类和位置坐标的预测,这类算法被称为两阶段目标检测算法。近几年,很多研究人员相继提出一系列单阶段的检测算法,只需要一个网络即可同时产生候选区域并预测出物体的类别和位置坐标…

开源C语言库Melon:I/O线程模型

本文展示开源C语言库Melon中的I/O线程模型。在Melon中存在三种线程模型,本篇仅对I/O线程模型进行说明。 关于 Melon 库,这是一个开源的 C 语言库,它具有:开箱即用、无第三方依赖、安装部署简单、中英文文档齐全等优势。 Github …

如何创建容器搭建节点

1.注册Discord账号 https://discord.com/这是登录网址: https://discord.com/ 2.点击startnow注册,用discord注册或者邮箱注册都可,然后登录tickhosting Tick Hosting这是登录网址:Tick Hosting 3.创建servers 4.点击你创建的s…

欧洲编程语言四巨头

从左往右,依次是 尼克劳斯沃斯 (Niklaus Wirth),迪杰斯特拉(Edsger Dijkstra),霍尔(Tony Hoare) 尼克劳斯沃斯 (Niklaus Wirth) 瑞士人,一生发明了8种编程语言,其中最著…

暖冬志愿服务在行动

1月7日,为了传递温暖与关爱,由雅安市群团中心指导,雅安市志愿服务联合会支持,雅安市雨城区梦飞翔公益社会服务中心执行的“暖冬志愿服务行动”在雨城区上里镇、碧峰峡镇、八步镇等乡镇,走访慰问困境儿童,为…

淘宝搜索指定店铺所有商品接口API调用介绍-含请求key代码示例

接口名称:item_search_shop 请求地址:taobao.item_search_shop 接口说明:此接口用于获取指定淘宝/天猫店铺的所有商品,通过传入shop_id或者seller_id可以获取到该店铺的所有商品,支持翻页展示。每页返回60个商品&…

1.4~1.5链表复习,代码操作(反转链表(用栈解决,双指针),删除链表指定元素),链表选择题,广义表

删除链表内指定范围的数 思路是双指针,定义两个指针,一个去找当前这个数满不满足要求,然后另一个定义为删除区间的起点 , 当不满足时,两个指针同时向后移动;当满足时,前驱指针就不动了&#xf…

Open CV 图像处理基础:(四)使用 Open CV 在 Java 中进行基本的图片模糊处理

使用 Open CV 在 Java 中进行基本的图片模糊处理 方法介绍 在Java中使用OpenCV进行图片模糊处理,主要可以通过以下几种方式: 均值模糊(Averaging Blur): 通过计算核窗口内所有像素的平均值来模糊图像。这种方法可以移除图像噪…

sqlmap性能优化

sqlmap性能优化 🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🌭🌭&#…

程序猿面试不想背八股文该怎么做

程序员必备的面试技巧 程序猿面试不想背八股文该怎么做 故事: wade_crab:小X,你怎么还不准备八股文?不是要准备面试了下午吗? 小X:面试知识走个过场,之前我就打过招呼啦。 wade_crab:还能这…

SpringBoot多环境配置以及热部署

多环境配置 使用多环境配置的原因: 在SpringBoot项目的生命周期中,存在不同的环境,例如开发时的环境,测试时的环境,交付使用后的生产环境,每种环境的配置可能不一样,这种情况下可以通过多环境…

百元蓝牙耳机推荐有哪些?百元平价的开放式蓝牙耳机推荐

无论是通勤、运动还是休闲时刻,一款好的蓝牙耳机都能为我们带来优质的听觉体验,特别是在预算有限的情况下,如何选择一款性价比高的百元蓝牙耳机变得尤为重要,那么我就根据我的使用经验给大家伙推荐几款百元平价的开放式蓝牙耳机&a…

11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…