广告
返回顶部
首页 > 资讯 > 精选 >Java抽象类与接口怎么定义使用
  • 341
分享到

Java抽象类与接口怎么定义使用

2023-06-30 10:06:33 341人浏览 独家记忆
摘要

这篇文章主要介绍“Java抽象类与接口怎么定义使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java抽象类与接口怎么定义使用”文章能帮助大家解决问题。1.对象的比较两个对象要进行比较之前,我们首

这篇文章主要介绍“Java抽象类与接口怎么定义使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java抽象类与接口怎么定义使用”文章能帮助大家解决问题。

1.对象的比较

两个对象要进行比较之前,我们首先需要确定依据什么来进行比较,对象中的成员变量那么多,直接比较是无法比较的

1.1 Comparable<T>

<T>是接口的参数,里面填要比较的对象的类型

此接口里面只有一个compareTo抽象方法,结构如下:

Java抽象类与接口怎么定义使用

在类中实现此接口后就可以进行类和类之间的大小的比较

1.2 Comparator<T>

这个接口中有一个抽象方法compare,同样是用来实现对象之间比较大小,方法的结构如下:

Java抽象类与接口怎么定义使用

Java抽象类与接口怎么定义使用

和Comparable<T>接口所不同的是,Comparator<T>接口可以作为Arrays类中sort方法的参数

Java抽象类与接口怎么定义使用

如果是元素为类的数组,使用Comparator<T>接口可以进一步进行数组排序

2.克隆对象

2.1 Cloneable

这个接口是一个空接口,但类需要实现此接口才能被克隆,而要重写的方法则是Object类中的clone()方法

idea中自动重写的clone()方法如下:

Java抽象类与接口怎么定义使用

throws以及后面的语句不是现在的重点,暂时略过

因为此方法的返回值是Object类,所以在使用的时候记得结果强制类型转换成子类 

2.2 深拷贝和浅拷贝

既然说到克隆,那就不得不提深拷贝和浅拷贝,简单说下二者的概念:

假设将A的内容拷贝到B中,然后我们修改B中的内容,如果A的内容没有改变,那么就是深拷贝,否则就是浅拷贝

需要说明的是:一个克隆方法是深拷贝还是浅拷贝和类里面的成员变量以及自己写的代码都有关系,两个不同的类使用同一个克隆方法,一个是深拷贝,另一个是浅拷贝,这种情况是存在的

现在有一个类如下:

class A implements Cloneable{    int i;    int j;    @Override    protected Object clone() throws CloneNotSupportedException {        return super.clone();    }    @Override    public String toString() {        return "{" +                "i=" + i +                ", j=" + j +                '}';    }}

我们在main方法中将其实例化后克隆给另一个对象,看看结果:

Java抽象类与接口怎么定义使用

此时a并没有因为b的改变而改变,clone()为深拷贝

我们再将类A进行改造:

class B implements Cloneable {    int k;}class A implements Cloneable{    int i;    int j;    B c=new B();    @Override    protected Object clone() throws CloneNotSupportedException {        return super.clone();    }    @Override    public String toString() {        return "{" +                "i=" + i +                ", j=" + j +                ", c.k=" + c.k +                '}';    }}

 结果如下:

Java抽象类与接口怎么定义使用

那么此时clone是深拷贝还是浅拷贝?

出现这种结果的原因要从内存上看,在类A没有进行修改之前内存如下:

Java抽象类与接口怎么定义使用

 类A修改后的内存如下:

Java抽象类与接口怎么定义使用

按照上图来看,要实现深拷贝就需要把类B的内容再克隆一份,所以我们需要对clone方法进行修改

class B implements Cloneable {    int k;    @Override    protected Object clone() throws CloneNotSupportedException {        return super.clone();    }}class A implements Cloneable{    int i;    int j;    B c=new B();    @Override    protected Object clone() throws CloneNotSupportedException {        A tmp=(A)super.clone();         tmp.c=(B)this.c.clone();        return tmp;    }    @Override    public String toString() {        return "{" +                "i=" + i +                ", j=" + j +                ", c.k=" + c.k +                '}';    }}

Java抽象类与接口怎么定义使用

至于为什么自己画图试试 ,这里就不讲了

3.Object类

Object类中有一些常用的方法这里拿出来介绍

3.1 equals

在Object类中此方法是用来比较大小的,返回值是布尔值,底层的实现逻辑如下:

public boolean equals(Object obj) {    return (this == obj); }

关于“==”,如果两边的变量是基本类型的变量,比较的是值是否相同,而如果是引用类型的变量的话,比较的则是地址是否相同

3.2 toString

输出语句System.out.println()底层调用的就是toString方法,不过如果输出的是引用类型数据默认是输出修改后的地址,所以此时需要对其进行重写,这也是上面的例子中有toString方法的原因

关于“Java抽象类与接口怎么定义使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java抽象类与接口怎么定义使用

本文链接: https://www.lsjlt.com/news/328220.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java抽象类与接口怎么定义使用
    这篇文章主要介绍“Java抽象类与接口怎么定义使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java抽象类与接口怎么定义使用”文章能帮助大家解决问题。1.对象的比较两个对象要进行比较之前,我们首...
    99+
    2023-06-30
  • JavaSE中抽象类与接口怎么定义及使用
    这篇文章主要介绍“JavaSE中抽象类与接口怎么定义及使用”,在日常操作中,相信很多人在JavaSE中抽象类与接口怎么定义及使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSE中抽象类与接口怎么定义...
    99+
    2023-07-02
  • JAVA接口与抽象类怎么使用
    本篇内容介绍了“JAVA接口与抽象类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接口概述当需要从几个类中派生出一个类,继承他们所有...
    99+
    2023-07-02
  • 【JAVA】抽象类与接口
    作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将ja...
    99+
    2023-09-08
    java 开发语言
  • java中的抽象类和接口定义与用法详解
    目录一、抽象类1.什么叫抽象类?2.抽象类的特点:3.成员特点:二、接口1.接口是什么?2.接口的特点3.接口的组成成员4.类与抽象的关系:5.抽象类与接口的区别:一、抽象类...
    99+
    2022-11-12
  • 【JAVA】抽象类与接口--下
    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 Ǵ...
    99+
    2023-09-03
    java 开发语言
  • Java抽象类与接口怎么掌握
    本文小编为大家详细介绍“Java抽象类与接口怎么掌握”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java抽象类与接口怎么掌握”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。abstractabstract介绍:...
    99+
    2023-06-30
  • 详解JavaSE中抽象类与接口的定义及使用
    目录一、抽象类1、抽象类定义2、抽象方法二、接口1、接口定义2、类实现接口3、接口与多态联合4、extends和implements5、接口在开发当中的作用6、is has like...
    99+
    2022-11-13
  • java接口和抽象类怎么使用
    Java 接口和抽象类是面向对象编程的重要概念,用于实现代码的抽象和封装。以下是它们的使用方法:1. 接口:- 定义接口:使用 `i...
    99+
    2023-08-09
    java
  • Java抽象类和接口怎么使用
    本篇内容主要讲解“Java抽象类和接口怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java抽象类和接口怎么使用”吧!看一下具体的例子,有一些小细节平时可能不会注意。class ...
    99+
    2023-06-02
  • Java抽象类和接口怎么用
    这篇文章将为大家详细讲解有关Java抽象类和接口怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。抽象类什么是抽象类呢?在现实生活中,我们说“人类”,我们无法对应到具体某个人,同样的,“动物类”、“图形...
    99+
    2023-06-29
  • java中抽象类、抽象方法、接口与实现接口实例详解
    前言对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的的啦(不要误会,我指的只是我自己啦啦...
    99+
    2023-05-30
    java 抽象类 接口
  • Java抽象类与接口实例分析
    这篇“Java抽象类与接口实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java抽象类与接口实例分析”文章吧。1.抽...
    99+
    2023-06-30
  • java中接口与抽象类有什么不同
    今天就跟大家聊聊有关java中接口与抽象类有什么不同,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。详解java中接口与抽象类的区别  1.abstract class 在 Java ...
    99+
    2023-05-30
    java
  • Java中怎么比较抽象类与接口的异同
    本篇内容主要讲解“Java中怎么比较抽象类与接口的异同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中怎么比较抽象类与接口的异同”吧!一.抽象类(一)概念    &n...
    99+
    2023-06-22
  • c++抽象类怎么定义及使用
    C++中的抽象类是指含有纯虚函数的类,它不能被实例化,只能被继承。抽象类用于定义一个接口,具体的实现由派生类完成。抽象类的定义通常包...
    99+
    2023-10-12
    c++
  • Java抽象类和接口使用梳理
    目录抽象类抽象方法抽象类三大原则接口接口使用原则JDK两大内置接口java.lang.Comparable 比较接口java.lang.Cloneable 克隆接口对象的深浅拷贝抽象...
    99+
    2022-11-13
  • Java抽象类和接口如何使用
    本文小编为大家详细介绍“Java抽象类和接口如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java抽象类和接口如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是抽象类什么是抽象类呢?抽象类顾名...
    99+
    2023-06-30
  • Java超详细介绍抽象类与接口的使用
    目录1.抽象类的语法和特性1.1语法1.2特性2.接口的语法和使用2.1语法2.2特性1.抽象类的语法和特性 1.1语法 1.在Java中,一个类如果被abstract 修饰称为抽象...
    99+
    2022-11-13
  • Java超详细讲解抽象类与接口的使用
    目录一、抽象类1、抽象类的语法2、抽象类的特性3、抽象类的作用二、接口1、接口的概念2、接口使用3、接口特性4、实现多个接口5、接口间的继承6、常用的接口(1)Comparable接...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作