java-抽象类与接口

Java抽象类与接口详解 什么是抽象类,什么是接口,其用法,通过本文,尽收眼底。 阅读详情

一、从类关键字方面

抽象类使用的是abstract关键字修饰类,而接口使用的是interface。

//class前面使用abstract修饰
public abstract class AbstractClassTest {
}
//只是用interface修饰
public interface InterfaceTest {
}

二、从成员变量方面

接口的成员变量默认是 public final static的,所以一定要进行初始化

//错误:不能是protected的访问级别成员变量的访问级别不能是protected、private
public interface Father {
    protected int age =1;//不能是protected的访问级别
    private String name = "abc";//不能是private的访问级别
    public void sayHello();
}


//正确:接口中的成员变量默认的访问级别是public的,且是常量,这里不管我们在变量前面加不加final static,都是常量
public interface Father {
    int age =1;
    String name="abc";
    public void sayHello();
}

不能包含静态代码块,否则会出现编译错误

//错误包含静态代码块
public interface Father {  
    static{
        System.out.println("接口中不能有静态代码块");
    }
    public void sayHello();
}

抽象类的成员变量可以是static 类型的、final、final static类型的、且访问级别可以是public、protected、private;同时可以包含静态代码块。

public abstract class Human {
    public  static int age;
    private  String name;
    protected final static int GENDER =0;
    static{
        System.out.println("我是一个Human");
    }
}

三、从构造器层面

抽象类实例构造器,而接口没有实例构造器init

//错误:接口中不允许有实例构造器
public interface Father {
    public void sayHello();

    public Father(){

    }
}
//正确:抽象类有实例构造器

public abstract class Human {

    public Human(){

    }
}

抽象类和接口都有类构造器clinit。但是这两者类构造器执行的时间是不同的,抽象类的构造器如果子类开始执行初始化,那么必须先执行父类的类构造器,但是接口只有在使用接口的成员变量时才会执行类构造器。
总结

四、从方法层面来讲

抽象类的方法可以有一个或多个抽象方法或者没有抽象方法,抽象方法没有具体的实现,方法由abstract修饰,访问级别是public和protected的。

public abstract class Human {
    abstract protected  void sayHello();
    abstract void hunt();//默认public
}

接口中的方法访问级别只能是public的(不用加public,默认是public),不能是protected和private的。

//错误:接口中的方法访问级别不能是protected和private的
public interface Father {
    int age =1;

    protected void sayHello();
    private void work();
}
//正确:接口中的方法访问级别只能是public的(不用加public,默认是public)
public interface Father {
    int age =1;

    void sayHello();
    void work();
}

五、从继承和实现的角度来看

一个类可以实现多个接口,而只能继承一个抽象类

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

接口与接口之间采用继承的方式

public interface Set<E> extends Collection<E> 

六、 从创建对象的角度来看

抽象类和接口都不能创建对象

七、总结

  • 从类与类之间的关系:抽象类是一类物体的属性和行为的对象,子类和父类的关系是is-a的关系;而接口表示一类食物的行为的抽象,子类与接口之间的关系是is-a的关系
  • 从类关键字层面:抽象类使用的是abstract关键字修饰类,而接口使用的是interface。
  • 从成员变量的层面:接口中的成员变量默认final static修饰的,也就是常量,而且访问级别只能是public的,不能有静态代码块;对于abstract类变量可以是static、final static、final、或者一般的成员变量、而且访问级别可以是private、protected、public的。
  • 从构造器层面来讲:抽象类有实例构造器,而接口没有实例构造器;抽象类和接口都有类构造器clinit。但是这两者类构造器执行的时间是不同的,抽象类的构造器如果子类开始执行初始化,那么必须先执行父类的类构造器,但是接口只有在使用接口的成员变量时才会执行类构造器。
  • 从方法的层面来讲:抽象类的方法可以有一个或多个抽象方法或者没有抽象方法,抽象方法没有具体的实现,方法由abstract修饰,访问级别是public和protected的。接口中的方法访问级别只能是public的(不用加public,默认是public),不能是protected和private的。当然不管是抽象类还是接口的方法都不能被final和static关键字修饰
  • 从类继承和实现的:一个类只能继承一个abstract类,但是可以实现多个接口,也就是多实现单继承。普通类、抽象类实现接口采用的是implements关键字,而子类继承父类使用的是extends关键字。
  • 从创建对象来说:抽象类和接口都不能创建实例对象。
数字后端:版图基础seal ring seal ring结构是为了防止划片或封装对芯片造成破坏,从而在芯片与划片道(scribe line)之间添加的一圈保护环 阅读详情

相关推荐

《缠中说禅108课》5:市场无须分析,只要看和干

喜欢吹牛皮的,在市场里最常见,例如一种以分析市场、吹牛皮为生的职业,叫什么股评、专家的。此类人不过是市场上的寄生虫,真正的猎手只会观察、操作,用嘴是打不了豺狼的。 市场就是一个狩猎场,首先你要成为一个好猎手,而一个猎手,首先要习惯于无言。如果真有什么真理,那真理也是无言的。可言说的,都不过是人类思想的分泌物,臭气熏天。真不可言说了,就无不可言,言而无言,是乃真言。 一个好的猎手,可以没有嘴巴,但一定会有一双不为外物所动的眼睛,在这眼睛下,一切如幻化般透明。要不被外物所动,则首先要不被自我所迷惑,其实..

BenRen1314的博客 802

abstract关键字(抽象类)【Java】

abstract修饰属性和方法 ①此类不能实例化 ②抽象类中一定要有构造器,这样会便于子类实例化时的调用。 ①抽象方法:只有方法的声明,没有方法体 ②包含抽象方法的类,一定是一个抽象类,但在一个抽象类中,可以没有抽象方法 ③若子类重写了父类中所有的抽象方法后,此子类就无需使用abstract修饰,反之要使用abstract修饰 注意点: ①abstract不能修饰变量、代码块、构造器 ②abstract不能修饰私有方法、静态方法、final的方法、final的类

m0_64681789的博客 3664

ONNC Open Neural Network Compiler 开源神经网络编译器 一个 开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)部署导入ONNX模型

ONNC是一个集合了开源、模块化、可重用编译器算法和工具链的库,专门针对深度学习加速器(DLA)。ONNC从底层开始构建,旨在将ONNX中间表示(IR)翻译成专有DLA代码。其软件架构设计强调可移植性和可重用性,从而简化了开发新后端的工作。上图展示了ONNC软件栈的顶层框图。软件栈从导入ONNX计算图模型到输出相应的硬件二进制文件,展示了各个功能块。

万有文的博客 1997

Java中的抽象类和接口(interface),abstract关键字的用法

目录抽象类接口 抽象类 Java是一个面向对象的语言,因此类可以说是根基一般的存在,所有的方法/变量/语句都必须依附一个类才能存在,有时我们为了对一个类进行拓展,会选择继承这个类,在子类中对父类进行增删改,由此就出现了这么一种类,一种专门用来被继承的且不能实例化对象的类——抽象类。 抽象类是被关键词abstract修饰的类,像这样: public abstract class AbsStudy { . . . . . . . } 虽然抽象类不能被继承,但是它也是一个类,是类就能被 方法/变量/

qq_46209845的博客 880

MAS1102量产工具实战指南:从下载到开卡,附固件选择与RDT优化技巧

本文提供MAS1102量产工具的实战指南,涵盖从工具下载、短接识别到开卡操作的全过程。重点解析了固件选择策略与RDT优化技巧,帮助用户成功修复基于联芸MAS1102主控的固态硬盘,解决常见开卡错误并提升SSD性能与稳定性。

c2d3e4f的博客 2205

RabbitMQ的使用(JAVA)

Java快速上手的MQ上线!

.............. 1万+

JAVA---抽象类

抽象类

Pray_for_me的博客 1502

龙芯3A5000开发板PMON升级UEFI固件实战指南

固件是计算机硬件与操作系统之间的关键桥梁,负责初始化硬件并引导系统启动。其工作原理是在上电后执行自检、加载引导程序,最终将控制权移交操作系统。在国产化平台中,采用标准化的UEFI固件具有重要技术价值,它能提供图形化配置界面、统一硬件驱动模型,并支持安全启动等现代特性,从而显著提升硬件兼容性与系统管理效率。这一技术广泛应用于PC、服务器及嵌入式设备,尤其在需要运行银河麒麟等主流操作系统的龙芯开发板场景中,将传统PMON固件升级至UEFI,能实现更流畅的系统安装与更稳定的运行体验。本文基于固件升级与UEFI引导

weixin_42664597的博客 563

java abstract修饰符用法

abstract一般用来修饰类和方法,不能修饰变量

希望有志同道合的的朋友可以互相学习! 1844

Win上通过Jconsole查看Java程序资源占用情况(教程总结,一篇就够了)

JConsole 是一个内置 Java 性能分析器,Java 5开始 引入了 JConsole。可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole来监控 Java 应用程序性能和跟踪 Java 中的代码。Jconsole工具查看程序的资源占用请求。安装jdk时bin目录有jconsole.exe工具,或者通过 Win + R,输入jconsole.exe启动jconsole( 可以从命令行直接输入jconsole。

明生的博客 6240

Cilium动手实验室: 精通之旅---1.Getting Started with Cilium

我们需要在 HTTP 层的第 7 层实施策略,以限制允许 tiefighter 调用的确切 API,以及不允许调用哪些 API。上仅需要的 API 资源的访问,从而为微服务之间的通信实施“最低权限”安全方法。船只上进行匹配,因此我们需要在该标签上进行匹配,此外,我们必须确保来自带有标签。为了模拟我们的连接测试,我们将使用 curl 执行简单的 API 调用。在我们立即开始更改策略之前,让我们考虑一下相应的网络策略应该是什么样子。的规则,该规则将通过 L3-L4 策略对死星的访问限制为仅帝国船只。

Q先生 1126

Java-抽象类、接口和内部类

title: 抽象类和接口 categories: [计算机科学,Java] tags: 抽象类和接口   抽 象 类 抽象方法:用abstract关键字修饰的方法。 抽象方法的特点: 不能有方法体。 抽象方法是用来被重写(Override)的。 抽象类:存在抽象方法的类就叫抽象类。用abstract关键字修饰。 抽象类的成员: 成员变量:可以是变量,也可以是常量。 成员方法: 抽象方法:限定子类中必须重写的一些方法; 非抽象方法:直接被子类继承,提高代码的复用性。 构造器.

weixin_45759583的博客 333

CANOE-介绍 @014-基于CAPL的Someip测试(CANOE 15.0/16.0/17.0)【草稿】发送事件、方法

摘要:本文介绍了使用CANoe 16.0及更高版本配置SOME/IP测试环境的方法,包括硬件连接、工程配置和CAPL代码实现。SOME/IP是一种面向服务的车载通信协议,支持服务发现、事件推送和方法调用。文章详细说明了网络拓扑配置、数据库文件加载等步骤,并提供了CAPL代码示例,展示如何初始化多个应用端点(15个不同端口)和服务实例(73个服务),通过SomeIpOpenLocalApplicationEndpoint和SomeIpCreateProvidedServiceInstance函数实现。配置过程

沿流不止 424

Java抽象类和接口

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

LEE180501的博客 4655

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VB摄像头监控

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

【Java】抽象类与接口全解析

本文详细介绍了Java中抽象类和接口的核心概念与使用。抽象类用于描述不具备完整信息的对象,通过abstract修饰,不能实例化且必须被继承。接口则是公共行为规范标准,使用interface定义,支持多实现。文章对比了两者的语法规则、特性差异,并通过代码示例演示了具体应用场景,帮助读者掌握面向对象编程中这两个重要机制的使用方法与设计意义。

user340的博客 3025

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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的博客 4869

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java之抽象类与接口

带你轻松了解抽象类与接口

G13138200303的博客 2001

【Java SE】抽象类和接口

本期主要讲解: 1、抽象类 1.1 抽象类的概念 1.2 抽象类的语法 1.3 抽象类的特性 1.4 抽象类的作用 2、接口 2.1 接口的概念 2.2 接口的语法规则 2.3 接口的简单使用 2.4 接口的特性 2.5 实现多个接口 2.6 接口之间的继承 2.7 抽象类和接口的区别 3、Object 类 3.1 认识Object类 3.2 获取对象信息 3.3 对象的比较 equals 方法​​​​​​​......

程序猿教你打篮球的博客 1874

Java接口和抽象类

Java中接口是很重要的

二哈喇子! 2665

java中抽象类和接口

当然有抽象类也有抽象方法,

有待提高 1159

【Java】抽象类和接口

本博客结合具体代码,带大家认识Java当中的抽象类和接口。

2401_88030885的博客 1329

Java中抽象类与接口详解

private我们已经知道,抽象类就是为了被继承,但是private修饰的并不支持继承,自然抽象类中也不能有private修饰了finalfinal修饰的类不支持继承,所以也不能与抽象类中abstract在一起使用static抽象方法不能用static修饰,static修饰的方法是类级别的方法,不是对象级别的方法.而抽象类使用来被继承的.首先抽象类是半抽象的,接口是完全抽象的,这也决定了他们的不同1.一个类可以实现(implements)多个接口,但是一个普通类只能继承(extends)一个抽象类。

qm_hu的博客 1497

Java 中什么时候用接口,什么时候用抽象类

一.java接口 1.接口的定义为的关键字为interface 2.接口中只能有方法和变量,变量为public static final类型,方法只能被可以为public(默认)和protected修饰,方法不能有具体的实现 3.一个类可以实现多个接口 4.一个类实现接口,必须要实现接口的所有的方法 二.抽象类 1.抽象类必须用 abstract修饰 2.如果一个类有abstract方法,这个类一...

不言尘世 6240

JAVA抽象类与接口

JAVA抽象类与接口 一、抽象类的概述 1、抽象类的引入: 以前学的猫狗案例,在父类中我们都给出具体的共性方法,但在实际情况中,每个子类对于共性方法的实现是不同的,这就引出了抽象类的概念。 抽象类即在继承条件下,父类中的共性功能,对于子类来说实现有差异,所以在父类中我们不必给出具体的实现,只需给出一个抽象的方法声明即可,实现交由子类自己重写,这个方法就叫抽象方法,而含有抽象方法的类就叫做抽象类。 2、抽象类与抽象方法格式: 抽象类:abstract class 类名 {} 抽象方法格

ZJMing_sir的博客 204
上一篇: java多线程-BlockingQueue实现的生产者消费之模型
下一篇: InnoDB引擎-一致性读锁定(为查询添加锁)
markliwei1
博客等级 码龄10年 26粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值