码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【JavaSE】抽象类和接口


    目录

    一、抽象类

    1、定义

    2、语法

    3、作用

    二、接口

    1、定义

    2、语法

    3、接口间继承


    一、抽象类

    1、定义

    如果一个类里没有包含足够的信息来描述一个具体的对象,且包含抽象方法的类,必须设计为抽象类

    语法:

    abstract class 类{

    ……

    }

    抽象方法:被abstract修饰的方法叫做抽象方法,他不需要给出方法的实现体

    2、语法

    1.抽象类不可以被实例化,但是可以有构造方法与静态或实例代码块

     

    2.可以与普通类一样定义字段和属性,但不能实例化对象

     

    3.可以被继承,存在的意义是被继承

    4.当一个类继承了抽象类后,必须重写抽象类里的抽象方法

     

    5.当继承抽象类的子类也是抽象类时,这个时候就不需要重写抽象方法,但当该抽象子类被继承后,继承该抽象子类的子类必须重写所有的抽象方法

     

    6.抽象方法是不能被private、final、static所修饰的,当方法被这几个所修饰时就不能重写,但抽象类里的抽象方法,当类被继承时是必须要重写的,因此不能被这几个所修饰

     

    3、作用

    相当于多了一层检查机制,当该抽象类里的抽象方法没有被继承该类的子类所修饰时就会报错

    二、接口

    1、定义

    接口就是公共的行为规范标准,在Java里接口可以看成多个类的公共规范,是一种引用数据类型

    语法:

    interface 接口名{

    ……

    }

     

     

    2、语法

    1.接口用interface修饰

    2.接口里可以有成员变量,但默认都是public static final所修饰的

    3.接口里的成员方法默认是由public abstract所修饰的

    4.接口里的方法不能有实现体,如果要有必修由default所修饰,接口里可以有静态的成员方法,静态的方法可以有实现体,但是不管是静态的方法还是default修饰的方法都是由public修饰的

    5.接口本身也不能实例化,但是可以依靠类来实现接口

    6.接口的实现:class 类名 implements 接口1,接口2,当类实现接口后要重写该接口里的抽象方法

    7.当一个抽象类实现接口时,可以先不用重写该接口里的抽象方法,当这个抽象类被子类继承时子类就要重写接口与抽象类里的抽象方法

    8.接口的默认修饰限定符是abstract

    9.接口编译后也会生成一个字节码文件

    10.接口里不能有静态实例代码块跟构造方法 

    11.接口里为了保持简洁,成员变量跟成员方法直接写成数据类型 变量名,返回值类型 方法名 参数列表

     3、接口间继承

    接口间也可以继承,相当于接口功能的扩展

     当有类实现接口A时,必须重写A与B接口里的抽象方法

  • 相关阅读:
    2023-10-16 itoa函数的局限以及实现
    机器学习算法:线性回归、逻辑回归、决策树和随机森林解析
    Java线程的基本操作(设置和获取、sleep、interrupt、join、yield、daemon、线程状态总结)
    c语言预处理及宏函数知识点总结
    低代码是什么意思?低代码平台的技术特点是什么?
    FPGA设计时序约束六、设置最大/最小时延
    VBA技术资料MF65:将十六进制值转换为RGB颜色代码
    ssl 层在握手阶段报错 mbedtls_ssl_handshake returned -0xffff8880
    使用VisualStudio2022制作安装包
    jssip在vue里调用出现‘get‘ on proxy: property ‘uri‘ is a read-only
  • 原文地址:https://blog.csdn.net/qq_61903414/article/details/126455945
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号