Java——继承下的抽象类与接口

news2025/1/13 7:29:06

在这里插入图片描述

文章目录

  • 壹、抽象类
  • 贰、接口

前言
我们前一章写了继承性,这一章节,一起来学习Java中的抽象类与接口相关知识。

壹、抽象类

1、定义:用关键字abstract修饰的类称为抽象类(abstract类)。
2、格式:

  abstract   class A{
    ......
  }

3、特点:
(1)抽象类中可以有抽象方法;
与普通类相比,抽象类中既可以有抽象方法,也可以有非抽象方法。对于抽象方法,只允许声明,不可以实现,而且不允许使用 finalabstract 同时声明一个方法。看下面一个例子;

abstract class A
{
   abstract int min(int x,int y);
   int max(int x,int y)
   {
   return x>y?x:y;
   }
}

(2)抽象类不能用new运算符创建对象;
若一个非抽象类是一个抽象类的子类,在子类中必须重写父类中的抽象方法,给出方法体,即子类对于父类中的abstract所修饰的方法的重新声明,同时保证声明的方法名字,返回值类型,参数个数及类型于父类的抽象方法完全相同。

(3)做上转型对象
尽管抽象类不能创建对象,但继承下的子类必须重写子类中的其中的全部抽象方法,这样可以绕抽象类声明的对象成为其子类对象的上转型对象,并且调用子类重写的方法。
4、看一段代码展示
父类:

public abstract class A {
    public   abstract  void  print();
    public void tell()
    {
        System.out.println("hello,world!");
    }
}

子类

public class B extends A{
    @Override
    public void print() {
        System.out.println("I am a good boy.");
    }

    public static void main(String[] args) {
       A a=new B();//上转型对象
       a.print();
    }

贰、接口

前言:接口的使用,在大型项目里面,非常普遍,将一个接口内的功能定义好,其他类直接通过关键字implements来实现。

1、接口的声明和使用
(1)接口的声明
我们曾使用关键字class来声明类,接口则是通过关键字interface来声明,格式如下:interface 接口的名字
(2)接口体
接口体包含常量定义和方法定义两个部分。接口体中只进行方法的声明,不允许提供方法的实现,所以方法的实现没有方法体。
例如:

interface Printtable
{
final int Max=100;
void add();
float sum(float x,float y);
}

(3)接口的使用
一个类通过关键字implements来声明自己实现一个或者多个接口。如果实现多个接口,则需要用逗号隔开,

class A implements PrintableAddable

大家在这里注意一下,继承下与接口的实现;
如:

class A extends B implements PrintableAddable

如果一个类实现某个接口,就必须实现接口内所有方法,即为这些方法提供方法体。同时保证声明的方法名字,返回值类型,参数个数及类型与接口完全相同。
注意,接口的方法默认为publicabstract,因而接口在声明方法是可以省略前面的publicabstract,但是类在实现接口方法时候就必须用public来实现。
(4)看下面代码
接口:

public interface A {
    void print();//只需要声明方法,无需实现
}

B实现A接口;

public class B implements A{
    @Override
    public void print() {
        System.out.println("I am a good boy.");
    }

    public static void main(String[] args) {
        B a=new B();//上转型对象
        a.print();
    }
}

(5)如果A接口中的所有方法在B中没有实现,会出现什么结果;
在这里插入图片描述
在这里插入图片描述
所有在实现接口时,我们需要将接口内的方法进行重写,即为实现方法。这与前面讲到的继承抽象类相似。

下一章,我们一起来学习接口与抽象类的比较,他们有什么相同,又有什么不同呢?

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

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

相关文章

进程调度例题解析

文章目录例题1 一个四道作业的操作系统中,设在一段时间内先后到达6个作业,它们的提交时间和运行时间见表例题2 一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法&…

智慧矿山解决方案-最新全套文件

智慧矿山解决方案-最新全套文件一、建设背景二、建设思路智能矿山建设存在的问题1、行业上存在的问题2、承建商存在的问题3、矿井自身存在的问题三、建设方案四、获取 - 智慧矿山全套最新解决方案合集一、建设背景 采矿业是我国国民经济的基础和支柱产业,而矿山智慧…

云安全防护总体架构设计

安全需求和挑战 从风险管理的角度讲,主要就是管理资产、威胁、脆弱性 和防护措施及其相关关系,最终保障云计算平台的持续安全,以及 其所支撑的业务的安全。 云计算 平台是在传统 IT技术的基础上,增加了一个虚拟化层,并…

MobaXterm工具使用/Docker安装Redis/Redisinsight工具使用

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

c++——map和set的使用

目录 一. 关联式容器 二. 键值对 三. 树形结构 Ⅰ. set 1. set的介绍 2. set的模版参数 3. set的构造 4. set的迭代器 5. set的容量 6. set其他操作 7. set的使用代码 Ⅱ. map 1. map的介绍 2. map的模板参数说明 3. map的构造 4. map的迭代器 5. map的容量 6…

Qt OpenGL(二十三)——Qt OpenGL 核心模式-给三角形上色

Qt OpenGL(二十三)——Qt OpenGL 核心模式-给三角形上色 本篇文章本来打算和上一篇文章写到一块的,但是考虑到VAO和VBO的概念是学习OpenGL核心模式绕不开的一个概念,所以单独再写一篇了,并且后面切换到使用Qt封装的VAO和VBO的时候,流程和这个也差不多,所以还是要做到理…

爬虫脚本代理池调度

爬虫脚本代理池调度 有时在使用爬虫或者使用脚本需要频繁访问一个网站,这种时候很容易被服务器给ban掉ip,这种情况就可以使用代理池。从代理池中进行调度获取新的ip进行访问。 使用的是开源免费的python项目地址如下: https://github.com/j…

【GPGPU编程模型与架构原理】第二章 2.1 计算模型

本章介绍以CUDA和OpenCL 并行编程中的一些核心架构概念来展示GPGPU的计算、编程和存储模型。本章还介绍虚拟指令集和机器指令集,逐步揭开GPGPU体系结构的面纱。 2.1 计算模型 计算模型是编程框架的核心,计算模型需要根据计算核心的硬件架构提取计算的共…

使用TinyPNG API压缩图片

使用TinyPNG API压缩图片 在撰写论文的时候,美观,大气,上档次的图标能够很好地给自己的论文加分,好的可视化结果也能够让审稿人赏心悦目。但是有时候在可视化图片的时候有可能原始图像过大从而很占内存;这时候就希望能…

Python+Numpy+CV2/GDAL实现对图像的Wallis匀色

Wallis匀色原理: # f(x,y):Wallis匀色后结果 # g(x,y):输入的待匀色影像 # mg:待处理影像的灰度均值 # mf:参考影像的灰度均值 # sg:待处理影像和的标准偏差 # sf:参考影像的标准偏差 f(x,y)(g(x,y)−mg)⋅(sf/sg)mf匀色代码逻辑解释&#xff1…

从阿里云“数字证书管理服务”申请免费的SSL证书

最近网站的SSL证书即将到期,之前是从FreeSSL申请的证书,而且是通过OpenSSL自己生成CSR文件的方式申请的证书,操作还是比较繁琐。(具体参考: https://blog.csdn.net/weixin_42534940/article/details/90745452 &#xf…

一、几种常用的设计模式

设计模式分类 创建者模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。 常用:单例模式、工厂方法模式、抽象工厂模式、建造者模式 。 不常用:原型模式结构型模式:把类或对象结合在一起形成一个更大的结构。…

Tilemap瓦片资源

1、Tilemap Tilemap一般称之为 瓦片地图或者平铺地图,是Unity2017中新增的功能,主要用于快速编辑2D游戏中的场景,通过复用资源的形式提升地图多样性 工作原理就是用一张张的小图排列组合为一张大地图 它和SpriteShape都是用于制作2D游戏的…

CEAC 之《企业信息化管理》1

👨‍💻个人主页:微微的猪食小窝 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 微微的猪食小窝 原创 收录于专栏 【CEAC证书】 1综合布线是智能建筑的信息高速公路。 A、正确 B、错误A2直通线的一根双绞线的两端执行不同…

Java基础实战项目-------网上订餐系统

目录 前言 项目需求 项目环境准备 技能点 实现思路 ​编辑 项目总结 完整代码: 前言 已学完Java基础部分的内容,如下 理解程序的基本概念:程序、变量、数据类型 会使用顺序、选择、循环、跳转语句编写程序 会使用数组以及Arrays的…

[附源码]SSM计算机毕业设计智慧教学平台JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]java毕业设计生产型企业员工管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

应急响应-账户排查

用户信息排查 在服务器被入侵之后,攻击者可能会建立相关账户,方便进行远程控制。 主要采用一下几种: 直接建立一个新用户;(有时候为了混淆视听,账户名称和系统常用名相似)激活一个系统中的默认用户,但是这…

ArcGIS计算图斑四至坐标原来这么简单!可不要在走弯路哦

时常我们需要去计算图斑的四至坐标 (四至与四至点不一样哦) 很多朋友会去求个 最小边界几何 在与原始图斑相交得到点来算四至 这种方法有许多问题 是不可以取的,我们今天来介绍一下 一个简单的字段计算就解决这个问题 然后嫌麻烦 我们…

jtag调试ls1012a linux-5.3内核

1、jtag连接 OK1012A-C jtag引脚如下: 如果jlink的VCC对外输出供电,那么需要关闭,VCC对外供电导致jtag连接不上。使用引脚匹配的转接板连接开发板的jtag插座。使用交叉串口线连接开发板。 2、linux-5.3内核编译 -O0编译修改方法与树莓派4b编译修改方法一…