十,JAVA抽象,接口,多态

  • 同一个体系才可以继承

abstract:表示抽象

  • 可以用来修饰类和函数

    • 抽象函数,抽象类

  • 抽象函数:格式:修饰符 abstract 返回值类型 函数名(形参);

  • 抽象类:格式:修饰符 abstract 类名{}

  • 注意:

    • 抽象函数必须位于抽象类中

    • 抽象类中没有抽象函数,那么整个类在禁止别人创建它的对象

    • 抽象类有构造器,但是不能创建对象

  • 抽象类可以强制子类做事情:子类继承父类是,将父类中的抽象函数也继承了,那么子类要么声明为抽象类,要么重写抽象函数

  • abstract不能与哪些关键字一起使用

    • peivate

    • static不能和this soper一起用

    • final

抽象类与普通类的区别

  • 抽象类既有普通函数又有抽象函数

  • 抽象类有构造器,但是不能创建对象

模板法

  • 当程序的一部分是确定的,另一部分是不确定的,不确定的地方交给子类来完成

  • 模板法是线程的原理

接口

  • 接口没有构造器

  • JDK8.0/1.8 之前只有两个成员

    • 常量 : public static final 数据类型 常量名 = 初始值 ;

    • 抽象函数 : public abstract 返回值类型 函数名(形式参数) ;

    • 注意: 8.0之前的来给你个成员修饰符是固定的,可以省略不写

    • public static final double PI = 3.14;
      double PIA = 3.14;
      public abstract boolean m1();
      int m2(int num);
  • JDK8.0开始 : 新成员

    • //默认级别函数
      default void  m3(){
      System.out.println("default IA 函数 m3");
      }
    • //静态函数   
      static void m4(){        System.out.println("静态函数 m4");
      }

类与接口之间的关系

  • 类与类之间 : 单继承,支持多层继承

  • 接口与类之间 : 多实现关系 , 支持多层实现

    • 类来实现接口,类实现接口后,具备继承特征 : 类是子类 , 接口是父类

    • 一个类可以在继承另一个类的同时,实现多个接口

  • 接口与接口之间 : 多继承关系,支持多层继承

  • 接口就是规范

    • B是A中的一员时,B可以继承A

    • B像A一样 , 定义接口 ,都实现统一接口

多态:同一个事物的多种形态

  • 向上转型:父类对象接受子类对象的引用

  • Animal animal2 = new Cat();
  • 前提:

    • 继承:

    • 重写

    • 向上转型

  • 弊端:向上转型会失去子类特有功能

  • 向下转型:将父类变量转换为子类类型

  • Cat cat3 = (Cat) animal2;
  • instanceof:判断前面的对象是否是后面这个类的类型

  • 格式 :  对象名  instanceof  类型System.out.println(animal instanceof Cat);
  • 函数编译能不能通过,看函数的左边有没有这个类型

  • 执行看右边

  • 变量都看左边

posted on 2023-12-14 16:59  とんぽ  阅读(17)  评论(0)    收藏  举报

导航