欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 简介11.抽象类、接口、instanceof、类关系、克隆

最编程 2024-10-16 07:18:49
...

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 ;
}

推荐阅读