java继承、抽象、接口介绍以及区别

枚举类型如何实现接口? 在Java中,枚举类型是一种特殊的类,它表示一组固定的常量。通常情况下,枚举类型的每个常量都是该类型的实例对象。要在枚举类型中实现接口,只需在枚举声明中使用关键字 “implements” 后跟接口的名称。接口中定义的方法需要在枚举类型中进行实现。需要注意的是,枚举类型中实现的接口方法是强制要求的,每个枚举常量都必须提供对应的实现。关键字,我们可以在枚举类型中定义和实现接口方法。可以看到,枚举类型成功实现了接口,并且每个枚举常量都提供了自己的实现。在主程序中,我们通过调用枚举常量的方法来使用枚举类型。 阅读详情

继承

//被继承的类Abc
public class Abc {
    int abc=123;

    //Abc的构造函数
    public Abc() {
        System.out.println("Abc的构造函数");
    }
    //普通方法
    public void haha(){
        System.out.println("哈哈");
    }
}

//Test类 继承Abc类
public class Test extends Abc {
    //Test的构造函数
    public Test() {
        System.out.println("Test的构造函数");
    }

    public static void main(String[] args) {
        Test test =  new Test();
        test.haha();
        System.out.println(test.abc);
    }
}

继承的特性
1. 子类拥有父类非private的属性,方法。
2. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3. 子类可以用自己的方式实现父类的方法。
4. Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
5. 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。

抽象

//抽象类
public abstract class Abc {
    int abc=123;

    //Abc的构造函数
    public Abc() {
        System.out.println("Abc的构造函数");
    }

    //普通方法
    public void haha(){
        System.out.println("哈哈");
    }

    //抽象方法
    public abstract void cx();
}

//继承抽象类
public class Test extends Abc {
    //Test的构造函数
    public Test() {
        System.out.println("Test的构造函数");
    }

    //实现抽象方法
    public void cx(){
        System.out.println("实现继承抽象类的抽象方法");
    }

    public static void main(String[] args) {
        Test test =  new Test();
        test.haha();
        test.cx();
        System.out.println(test.abc);
    }
}

抽象类总结规定
1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
3. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
4. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
5. 因为不能被实例化,所以只能被继承才能用,一个子类只能继承一个抽象类。

接口

public class Test extends Abc implements Idemo,Idemo2 {
    //Test的构造函数
    public Test() {
        System.out.println("Test的构造函数");
    }

    //实现抽象方法
    public void cx(){
        System.out.println("实现继承抽象类的抽象方法");
    }

    public static void main(String[] args) {
        Test test =  new Test();
        test.haha();
        test.cx();
        System.out.println(test.abc);
    }


    //implements必须实现接口
    @Override
    public void a() {
        System.out.println("实现了Idome的a");

    }

    @Override
    public void b() {
        System.out.println("实现了Idome的b");

    }
}

//接口类1
public interface Idemo {
    //接口中变量会被默认指定为 public static final (并且只能是 public)。
    public static final int A =1;
     //或者这样写int a =1;一样的,会被默认指定。


    //接口中方法会被默认指定为 public abstract(只能是public abstract)。
    public abstract void a();
    //或者这样写一样的void a();会被默认指定。
}

//接口类2
public interface Idemo2 {
    // 接口中变量会被默认指定为 public static final (并且只能是 public)。
    public static final int B = 1;
    // 或者这样写int a =1;一样的,会被默认指定。

    // 接口中方法会被默认指定为 public abstract(只能是public abstract)。
    public abstract void b();
    // 或者这样写一样的void a();会被默认指定。
}

接口与类的区别:

  1. 接口不能用于实例化对象。
  2. 接口没有构造方法。
  3. 接口中所有的方法必须是抽象方法。
  4. 接口不能包含成员变量,除了 static 和 final 变量。
  5. 接口不是被类继承了,而是要被类实现,多实现用逗号隔开。
  6. 接口支持多继承。

接口特性

  1. 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract(只能是 public
    abstract,其他修饰符都会报错)。
  2. 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用
    private 修饰会报编译错误)。
  3. 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

抽象类和接口的区别
1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。
2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。
3. 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

基于LTspice的共模电感差模/共模插入损耗仿真指南 在电源与EMC设计领域,插入损耗是衡量滤波器件抑制噪声能力的核心指标。共模电感作为EMI滤波器中最常见的元器件之一,其差模与共模插入损耗特性直接影响整体滤波方案的合规性。然而,仅依赖规格书曲线往往难以覆盖真实应用中的阻抗条件,借助SPICE仿真工具进行电路级验证已成为工程师常用的手段。LTspice凭借其轻量、高效的交流分析能力,能够帮助设计者快速搭建共模电感等效模型,并通过调整耦合系数、寄生电容等参数,还原漏感与谐振行为。本文以Wurth Elektronik的WE 744821201型号为例,从基本测试 阅读详情

相关推荐

关于基于Midas Civil API的二次开发——PyMiMi

现在写了第一条博客,希望是一个好的开始,能够每天抽出一两个小时或者更多的时间来写写代码,研究研究。我发现在我的工作中存在着大量的重复性工作,对于文档的开发是好办的,毕竟网上有现成库,只需要pip一下拿来用就好,但是对于Midas而言,在24版本之前官方都是没有一个可以使用的接口的,可能mct文件算半个?

ManiacsTraitor的博客 1850

Java—枚举

枚举的两种实现方式 1.自定义类实现枚举 2.使用enum关键字实现枚举 自定义类实现枚举 1.不需要提供setXxx方法,因为枚举对象值通常为只读 2.对枚举对象/属性通常会使用final + static关键字共同修饰,实现底层优化 3.枚举对象名通常全部都会大写,这是常量的命名规范 4.枚举对象根据需求,也可以有多个属性 ...

weixin_61843013的博客 1844

Win11只读模式无法关闭的终极解决方案

通过以上方法,我们应该能够解决Windows 11中文件夹无法取消只读状态的问题。如果问题仍然存在,请确保你的账户具有足够的权限来修改文件夹属性,并考虑是否有其他安全软件或策略阻止了权限更改。在操作过程中,请务必小心谨慎,避免误操作导致数据丢失或系统损坏。希望本文能够帮助到大家!

mmoo_python的博客 1万+

【Java枚举类】使用enum关键词定义的枚举类实现接口

3.若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法。2.若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。1.和普通 Java 类一样,枚举类可以实现一个或多个接口。如果我们希望每一个对象调用的show()展现不一样的内容。

qq_64976935的博客 2036

为什么我的Win11家庭版找不到BitLocker?教你两种强制关闭加密的隐藏方法

本文解释了Win11家庭版为何缺少BitLocker功能,并提供了两种强制关闭加密的隐藏方法。通过注册表修改和PowerShell命令,用户可以调出隐藏的加密控制面板或直接操控加密引擎,解决家庭版设备加密的管理难题。

weixin_42535703的博客 1764

大模型训练中的AllReduce:从原理到实战,如何优化你的分布式训练效率

本文深入解析了大模型分布式训练的核心通信操作AllReduce,特别是高效的Ring All-Reduce算法原理。文章从实战角度出发,探讨了如何通过通信计算重叠、梯度累积策略、NCCL库调优以及混合并行通信优化等手段,有效降低通信开销,从而显著提升大模型训练效率。

julia4scientist的博客 524

接口(interface)

接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则必须能...”的思想。继承是一个"是不是"的is-a关系,而接口实现则是 "能不能"的has-a关系。例如:电脑都预留了可以插入USB设备的USB接口,USB接口具备基本的数据传输的开启功能和关闭功能。你能不能用USB进行连接,或是否具备USB通信功能,就看你能否遵循USB接口规范例如:Java程序是否能够连接使用某种数据库产品,那么要看该数据库产品能否实现Java设计的JDBC规范。

m0_59281987的博客 1586

Python爬虫实战:股票历史数据抓取与量化回测全流程详解

我们以**东方财富网(eastmoney.com)和雪球网(xueqiu.com)**为主要目标,演示如何爬取A股历史行情。最常用的HTTP请求库,简单易用,适合静态页面数据请求。本文详细介绍了从股票历史数据抓取到简单回测的完整流程,代码示例基于最新技术,结构清晰,适合初学者和进阶者学习量化投资实战。希望对你入门Python爬虫和量化交易有所帮助!

2201_76125261的博客 1779

枚举实现接口——模拟可扩展的枚举

枚举类和普通类实现接口一样吗?

qq_43842093的博客 1052

【ComfyUI专栏】ComfyUI 常用工作流下载与分享网址

首先我们来分享第一个网站,Openart 网站,这个网站同时也能提供比较多的其他类型。但是如果希望下载工作流,我们可以访问到如下的这个站点。作为ComfyUI的学习用户来说,我们通常需要借助他山之石来帮助我们快速成长,因此我们需要找到能够分享和下载的网址。,当前网站是综合性网站,在网站中可以下载各种不同的类型,其中工作流只是可以下载的非常小的部分。这个网站也可以浏览不同的工作流,这个工作流的地址和访问如下的站点。

技术与管理的平衡木- 7793

DeepSmote:一种深度SMOTE方法

DeepSmote 一种全新的将深度学习与Smote相结合的过采样方法! 目前在许多领域已经被使用,值得大家关注学习!

走在深度学习前沿的小宋 1447

java继承、抽象、接口介绍及区别

继承 //被继承的类Abc public class Abc { int abc=123; //Abc的构造函数 public Abc() { System.out.println("Abc的构造函数"); } //普通方法 public void haha(){ System.out.println("哈哈");

huayjava的博客 517

【PHP面试题29】什么是PHP-FPM?它与PHP和Nginx有什么关系

PHP面试专区。计划将全覆盖PHP开发领域所有的面试题,对标资深工程师/架构师序列,欢迎大家提前关注锁定。PHP-FPM(FastCGI Process Manager)是PHP的FastCGI进程管理器,它是PHP 5.3.3及更高版本的一部分。它通过为每个请求分配一个独立的进程来提高PHP脚本的执行效率和性能,并且可以与Web服务器(如Nginx、Apache等)进行通信。PHP-FPM是PHP的FastCGI进程管理器,它通过为每个请求分配一个独立的进程来提高PHP脚本的执行效率和性能。

黑夜开发者的博客 1477

java复习(五)面向对象(三)继承,关键字介绍,抽象类,接口区别

继承      定义:继承就是子类继承父类的所有属性(即成员变量)和所有操作(即成员方法)。 注意:是所有属性和所有操作,意味着即使是private修饰的变量或者private修饰的方法也可以继承,只不过子类访问不到而已,但是确实继承下来了。(包括构造函数也可以继承下来)。 了解继承之前,先来了解部分关键字,先说今天会用到的,其他关键字用到再说……   关键字和保留字的区别:      ...

kingdomjc 577

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

初识Java【5】——继承、抽象类、接口

从继承讲到抽象类,再从抽象类讲到接口。诸多面试关键点:final关键字、super关键字、重写与重载的区别。知其然,知其所以然的详细解释,必须要让你一读就懂!

LU_ZE_XX的博客 4415

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java 抽象类和接口的继承 抽象类与接口系列之三

抽象类只能被单继承,而接口可以被多继承。 一个类中可以继承单个抽象类和多个接口 。 package java_10; public class java_10_3 { public static void main(String[] args) { // TODO 自动生成的方法存根 D3 d3 = new D3(); d3.meth_Abtract_IA3(); d3...

Izrj的博客 434

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【java】抽象类和接口

作者还是一个萌新,如果有什么讲的不对的地方欢迎在评论区指出,希望能够和你们一起进步✊。

acm_pn的博客 1349

Java 抽象类和接口

文章目录一、抽象类1.抽象类1.1抽象类的定义1.2抽象方法的定义方式1.3抽象类的定义方式2.抽象类和实例类的区别3.抽象类示例4.抽象类的特征二、接口1.接口1.1接口的定义1.1定义一个接口1.2 接口的使用1.3接口的注意事项2.接口示例3.接口的特征三、抽象类和接口的区别 一、抽象类 1.抽象类 1.1抽象类的定义 在Java面向对象当中,所有的对象都是用过类进行描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类没有包含足够多的信息来描述一个具体的对象,这样的类就是抽象类。 1.2抽象方法的

WYSCODER的博客 4868

接口可以继承接口吗?接口、抽象类、实体类的关系

1、接口可以继承接口,抽象类不可以继承接口,但可以实现接口。 2、抽象类可以继承实体类。抽象类可以实现(implements)接口,抽象类是否可继承实体类,取决于实体类必须是否有明确的构造函数。 3、抽象类可以继承实体类,这是因为抽象类可继承性且有方法。 4、一个接口可以继承多个接口. interface C extends A, B {}是可以的; 5、 一个类可以实现多个接口: class D implements A,B,C{},但是一个类只能继承一个类,不能继承多个类 class B ext

GEGEGEHUI的博客 1万+

Java抽象类和接口

本篇文章我们只谈了两件事:抽象类-接口。抽象类和接口是Java中两个非常重要的概念,它们各有独特的优势,共同特点是都很抽象。

LEE180501的博客 4655

Java抽象类和接口【超详细】

在打印图形例子中, 我们发现, 父类 Shape 中的 draw 方法好像并没有什么实际工作, 主要的绘制图形都是由 Shape的各种子类的 draw 方法来完成的. 像这种没有实际工作的方法, 我们可以把它设计成一个。如之前写的 Animal 例子. 此处的 Animal 中包含一个 name 这样的属性, 这个属性在任何子类中都是存在的. 因此此处的 Animal 只能作为一个抽象类, 而不应该成为一个接口。在Java中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。

weixin_65476629的博客 3113

Java 抽象类、接口及继承关系

Java 抽象类、接口及继承关系

xiaowangbadan0_0的博客 524

java 继承 抽象 接口_Java 继承、抽象、接口

一、继承1. 概述继承是面向对象的重要特征之一,当多个类中存在相同的属性和行为时,将这些内容抽取到单独一个类中,那多个类中无需再定义这些属性和行为,只需继承那个单独的类即可。单独的类称为父类或超类多个类称为子类例如:猫和老虎都是属于猫科动物。描述猫、老虎这些对象所创建的类,就是子类;而描述猫科动物这个对象所创建的类,就是父类。类与类之间存在了继承关系,子类可以直接访问父类中非私有的属性和行为,代码...

weixin_35765225的博客 167

Java中抽象类与接口的区别

Java中抽象类和接口在使用上如此相似,在高级开发中应该如何使用两者,本文对抽象类和接口的区别做如下总结。因为接口可以避免单继承的局限,如果抽象类和接口同时都可以使用的话,优先使用接口。一、抽象类1.定义 抽象类:包含一个抽象方法的类称为抽象类,在方法头中使用abstract修饰符表示

极客园地 691

继承、抽象类和接口

一、继承 1、继承的概念:继承是类与类的一种关系,是一种“is a”关系(注:Java中的继承是单继承:一个类只能有一个父类) 2、继承的好处:子类拥有父类的所有属性和方法,实现代码的复用;继承的出现让类与类之间产生了关系,提供了多态的前提。 3、继承的使用:看父类内容,创建子类对象使用 4、方法的重写: 1)如果子类对继承父类的方法不满意,是可以重写父类继承的方法的,当调用方法时会优先

LyngLi 731

Java中接口和抽象类的理解

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。如果你想设计这样一个类,该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么你可以在父类中声明该方法为抽象方法。以上的程序片段是合法定义的子接口,与类不同的是,接口允许多继承,而C及D可以定义或是继承相同的方法。抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行。否则,类必须声明为抽象的类。...

qq_58029155的博客 1487
上一篇: Eclipse恢复默认窗口布局
下一篇: Java重写和重载
bin25
博客等级 码龄9年 16粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值