Java入门:11.抽象类,接口,instanceof,类关系,克隆

devtools/2024/10/15 23:59:47/

1 JDK中的包

  • JDK = JRE + 开发工具集(javac.exe)

  • JRE = JVM + java类库

  • JVM = java 虚拟机

  • jdk中自带了许多的包(类) , 常用的有

    • java.lang 该包中的类,不需要引用,可以直接使用。 例如:Object , System , String

    • java.util

    • java.sql

    • java.net

    • java.io

    • java.text

2 抽象方法与抽象类

2.1 抽象方法

  • 抽象方法,就是不具体的方法。

  • 语法而言:哪里不具体? 没有方法体,具体的执行操作不知道

    由abstract关键字修饰,没有方法体的方法,称为抽象方法

    public void test1(){}
    ​
    public abstract void test1();

    逻辑而言:哪里不具体呢? 只清楚基本规则规范,但不确定具体的实现。

  • 抽象方法怎么用?

    • 抽象方法不能直接调用

    • 抽象方法必须被子类重写,实际使用的是子类重写的方法。(抽象方法可以作为规则)

      抽象方法不能被private修饰 ,不能被final修饰, 不能被static修饰

  • 抽象方法必须写在抽象类或接口中

2.2 抽象类

  • 由abstract关键字修饰的类,称为抽象类

    public class A{}
    public abstract class B{}

    抽象类也是类,可以有构造方法,普通属性,普通方法 和 抽象方法

  • 抽象类不能创建对象

  • 抽象类的主要作用就是定义抽象方法。

  • 抽象类必须被子类继承使用,并且子类要重写抽象类中的所有抽象方法,否则子类也是一个抽象类

  • 抽象类中可以不包含抽象方法,但意义不大。

3 接口

  • 接口是一个特殊的抽象类

  • 接口中只能有抽象方法和静态的公共常量,没有普通方法 ,也没有构造方法,不能创建对象

  • 接口使用interface关键字定义

    class A{}
    abstract class B{}
    interface C{}

    接口也必须被子类继承使用,子类继承接口称为 实现接口, 使用implements关键字完成类与接口的实现关系,子类被称为实现类

    interface A{}
    class B implements A{}

    子类实现接口后,需要重写接口中的所有抽象方法,否则子类也是抽象类

  • 子类可以实现多个接口

    interface A{}
    interface B{}
    class C implements A , B{}
  • 接口之间也可以继承,并支持多继承

    interface A{}
    interface B{}
    interface C extends A , B{}

扩展

  • 接口中的所有方法都是公共的抽象方法, 可以省略 public abstract

  • 接口中的所有属性都是公共的静态常量属性,可以省略public static final

java">interface A{void t1();   //public abstract void t1();int i = 10 ; //public static final int i = 10 ;
}


http://www.ppmy.cn/devtools/126428.html

相关文章

【AAOS】Android Automotive 14模拟器源码下载及编译

源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r20 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch sdk_car_x86_64-trunk_staging-eng make -j8 运行效果 emualtor Home All apps …

盒子模型:文档流

1、文档流的概念 HTML网页默认的元素摆放机制 &#xff08;1&#xff09;块元素的文档流&#xff08;自上而下流水线摆放&#xff09; 代码如下&#xff1a; <head><style>div{width: 100px;height: 100px;background-color: gray;border: 2px solid red;}<…

【jQuery】jQuery基本操作(样式操作 内容操作 节点操作 属性操作 节点遍历)

文章目录 1、样式操作2、内容操作2-1 html()2-2 text()2-3 val() 3、节点操作3-1 创建3-2 插入3-3 删除3-4 替换3-5 复制 4、属性操作5、节点遍历6、DOM操作 DOM 操作分为三类&#xff1a; ​ DOM Core&#xff1a;任何一种支持DOM的编程语言都可以使用它&#xff0c;如getElem…

Python自动化脚本裁剪图片为1:1比例

一、创建输入文件夹&#xff08;in&#xff09;和输出文件夹&#xff08;out&#xff09;&#xff0c;将原始图片放在输入文件夹&#xff08;in&#xff09;里 二、 安装对应的Python库 pip install Pillow 三、编写自动化脚本代码 import os from PIL import Imagedef crop…

使用Jenkins部署项目

部署中的痛点 为什么要用Jenkins&#xff1f;我说下我以前开发的痛点&#xff0c;在一些中小型企业&#xff0c;每次开发一个项目完成后&#xff0c;需要打包部署&#xff0c;可能没有专门的运维人员&#xff0c;只能开发人员去把项目打成一个exe包&#xff0c;可能这个项目已…

Multiprocessing出错没有提示was skipped without notice in python

这个问题可以通过打印返回结果解决。 解决方法 比如 Pool.apply_async(csdnKuangXiaoHU, args=(p, DestFile))改成 Result = Pool.apply_async(csdnKuangXiaoHU, args=

使用Rollup.js快速开始构建一个前端项目

Rollup 是一个用于 JavaScript 项目的模块打包器&#xff0c;它将小块代码编译成更大、更复杂的代码&#xff0c;例如库或应用程序。Rollup 对代码模块使用 ES6 模块标准&#xff0c;它支持 Tree-shaking&#xff08;摇树优化&#xff09;&#xff0c;可以剔除那些实际上没有被…

Chapter07 Spring中的事务 知识点总结Note

文章目录 JdbcTemplate准备工作实现CURD 声明式事务概念事务基本概念 编程式事务基于注解的声明式事务准备工作测试无事务情况加入事务Transactional注解标识的位置事务属性&#xff1a;只读事务属性&#xff1a;超时事务属性&#xff1a;回滚策略事务属性&#xff1a;隔离级别…