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

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

继承

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

    //Abc的构造函数
    public Abc() {
        System.out.println("Abc的构造函数");
    }
    //普通方法
    public void haha(){
        System.out.println("哈哈");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

//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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

继承的特性 
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();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

//继承抽象类
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
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

抽象类总结规定 
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

//接口类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();会被默认指定。
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

//接口类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
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

接口与类的区别:

  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. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

【WorkBuddy专栏50】代码开发技术体系深度分析——前端、后端、全栈、移动端、数据工程,WB和CODEBUDDY谁更擅长? 阅读详情

相关推荐

视频倍速 - 在线调倍速的加速器APP工具

一刀工具箱APP提供一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!一键可将手机上的视频倍速播放,可以调整视频倍速的加速器,调节视频的速度也就是调节视频的播放速度!视频倍速-在线调倍速的加速器-一刀工具箱APP。...

无涯教程 7555

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

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

bin25的博客 3231

告别Root!用Python脚本一键解密Android微信EnMicroMsg.db数据库(附完整源码)

本文详细介绍了如何在非Root环境下使用Python脚本一键解密Android微信EnMicroMsg.db数据库。通过ADB调试接口和SQLCipher技术,实现自动化提取和解密微信聊天记录数据库,无需Root权限,适合数据分析师和普通用户安全备份数据。

weixin_29266007的博客 329

Java—枚举

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

weixin_61843013的博客 1844

自动驾驶车辆纵向控制实战:基于CARLA与ROS2的PID算法实现

本文详细介绍了基于CARLA与ROS2的自动驾驶车辆纵向控制实战,重点讲解了PID算法的实现与应用。通过搭建仿真环境、实现定速巡航和自适应巡航功能,帮助开发者掌握自动驾驶核心技术。文章还分享了系统集成、仿真验证及常见问题的调试技巧,为自动驾驶开发提供实用指导。

weixin_33728708的博客 354

Telegram AI Bot自动化实战:5步用Make搭建业务工作台

Telegram Bot 是一种轻量级、高抵达率的消息自动化载体,其核心价值在于将结构化消息(如text、photo、callback_query)转化为可编程的事件流。基于 Bot API 的简洁设计与 Webhook 机制,开发者无需复杂鉴权即可实现毫秒级响应。结合低代码平台 Make,可快速构建具备上下文识别、条件路由、多系统分发与错误熔断能力的自动化流程。该方案特别适用于客服分发、数据同步、IoT告警等高频、规则明确、需即时反馈的业务场景,显著降低对 Python/Node.js 编程与 DevOp

weixin_33158887的博客 300

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

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

qq_64976935的博客 2036

速腾Helios-16P使用Lego-loam实时构建点云地图(二)——Lego-loam的编译与运行

不兼容的问题,打开lego-loam的~/lego-loam_ws/src/LeGO-LOAM/LeGO-LOAM/src下的4个源码文件,搜索/camera_init,将所有/camera_init改成camera_init,也就是去掉斜杠,这样再回到工作空间重新编译lego-loam。3、速腾16线激光雷达RS-16 ----- 3D建图算法LeGO-LOAM的使用(Ubuntu18.04 + ROS Melodic)_速腾16线 lego loam_杰尼君的博客-优快云博客。

qq_59475883的博客 2568

接口(interface)

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

m0_59281987的博客 1586

YOLO11涨点优化:半监督学习 | 结合Unbiased Teacher框架,利用海量无标签数据实现自训练暴力涨点

本文提出了一种基于Unbiased Teacher v2的半监督学习方法,用于解决YOLO11目标检测模型在标注数据不足时的性能瓶颈问题。通过分析纯监督YOLO11在小样本场景下的局限性,揭示了朴素自训练方法的三大陷阱:确认偏差、类别不均衡和噪声累积。文章详细解析了Unbiased Teacher框架的核心设计理念,包括教师-学生模型互监督机制、类别平衡损失和Burn-In预热策略,并重点介绍了v2版本针对无锚框检测器的优化。最后提出将Unbiased Teacher与YOLO11相结合的融合架构设计方案,

2601_95807009的博客 207

Android Framework AMS面试题及参考答案

比如,应用 B 的 Activity 如果是 “singleTask” 启动模式,AMS 会查找应用 B 是否有包含该 Activity 的任务栈,若有则将这个任务栈切换到前台,并且清除该 Activity 之上的其他 Activity,实现流畅的跨应用跳转体验。如果一个 Activity 的启动依赖于另一个 Activity 的结果,AMS 会暂停当前 Activity 的部分生命周期操作,等待依赖的 Activity 完成相关操作后,再继续当前 Activity 的生命周期进程。

大模型大数据攻城狮的专栏 1857

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

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

kingdomjc 577

SAP-ABAP:字符与数值类型转换详细指南

SAP-ABAP:字符与数值类型转换详细指南

baidu_35680696的博客 1477

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

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

LU_ZE_XX的博客 4415

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【java】抽象类和接口

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

acm_pn的博客 1349

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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抽象类和接口【超详细】

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

weixin_65476629的博客 3113

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

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

weixin_35765225的博客 167

Java抽象类和接口

Java抽象类和接口详解

不能再留遗憾了的博客 1764

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

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

xiaowangbadan0_0的博客 524

Java中抽象类与接口的区别

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

极客园地 691

Java接口和抽象类的区别

接口和抽象类是面向对象编程中的重要概念,它们都提供了一种方式,使得我们可以定义一个模板,并让其他类实现或继承这个模板。尽管他们有一些相似之处,但接口和抽象类在Java和其他面向对象编程语言中有一些关键的区别。

刘皇叔说Java的博客 339

Java中接口和抽象类的理解

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

qq_58029155的博客 1487

继承、抽象类和接口

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

LyngLi 731
上一篇: 异常及处理
下一篇: javaOO总结
huayjava
博客等级 码龄9年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值