当前位置: 首页 > news >正文

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

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

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

http://www.lryc.cn/news/460665.html

相关文章:

  • 【软件部署安装】OpenOffice转换PDF字体乱码
  • 工程师 - 开源硬件公司Adafruit介绍
  • PostgreSQL学习笔记五:数据库基本操作
  • 住房公积金 计算器-java方法
  • Spring-Smart-DI
  • Python 在树莓派上实现WIFI连接
  • vmware下ubuntu18.04中使用笔记本的摄像头
  • 【Linux】最基本的杂项设备驱动
  • RadioGroup RadioButton底部导航栏
  • SQL分类中的DQL
  • 1.3.ReactOS系统 PAGED_CODE 宏函数的实现
  • 【论文速看】DL最新进展20241015-目标检测、图像超分
  • 京准电钟:NTP时间服务器让大数据时钟同步
  • SSL免费证书申请(七牛云/阿里云等)
  • 十二、结构型(代理模式)
  • 使用 python 下载 bilibili 视频
  • DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?
  • 真空牛肉滚揉机的优点:
  • 【物流配送中心选址问题】基于退火算法混合粒子群算法
  • elasticsearch 8.2 版本账号密码设置及SSL设置
  • git gui基本使用
  • 从automaxprocs库浅窥Linux容器的资源控制
  • AI 读文献(二):综述论文10倍速读和整理
  • 【AAOS】Android Automotive 10模拟器源码下载及编译
  • 前端开发攻略---使用css实现滚动吸附效果
  • 解析 MySQL 查询优化:提升性能的十个关键策略
  • QT--QPushButton设置文本和图标、使能禁能、信号演示
  • PostgreSQL学习笔记六:模式SCHEMA
  • 基础IO -- 理解文件(1)
  • golang包管理