DESKTOP-7J91214_20200828-张军强

1.总结

1.1抽象类与接口

相同点

  • 两者都不能实例化

    ​ 抽象类有构造但不允许实例化,只能让子类调用 ; 接口没有构造,所以接口不允许实例化

  • 都可以包含抽象方法

  • 都是由abstract修饰符修饰,但接口的abstract修饰符默认不显式书写

不同点

  • 抽象类仍然是类,所以可以有字段、方法、构造方法;接口不是类,所以接口没有构造方法

  • 抽象类可以有初始化器(类初始化器和实力初始化器) ; 接口不能有初始化器

  • 抽象类子类只能继承一个直接父类 ;接口子类可以继承多个父接口

  • 一个抽象类可实现多个接口 ;接口只能继承接口,不能实现接口

  • 抽象类是类,类的最高层是Object ; 接口没有最高层,只能通过定义后继承

  • 抽象类可以定义变量也可以定义常量 ; 接口只能定义常量:public static final修饰的常量

1.2 super 与 this

相同点

  • this 和 super 都是与实例有关的 :使用 this 和 super 可以访问 实例成员 和 类成员(不建议访问)
  • this 和 super 都不能出现在 static 方法中 和 static 代码块中 ( 类初始化器 )
  • this 和 super 都可以用于调用构造方法:当通过 this( [参数] ) 或 super( [参数] ) 调用构造方法时,它们必须位于构造方法的第一行,在同一个构造方法内部 this 或 super不能同时出现

不同点

1.所表示的实例不同

    -  this 代表本类的当前实例,即可以通过this访问本类中的成员
    -  super 用于访问从父类中继承的、可见的成员 

2.调用的构造方法不同

  • this用于调用本类 内部的其他重载的构造方法
  • super用于调用 类中 的构造方法

    3.访问的成员不同

    • 可以使用this . 访问本类中以及从父类中继承的 ,可见的 成员
    • 可以使用 super . 访问从父类中继承的 ,可见的成员
  1. 使用方式不同

  • this 可以单独使用 ,而super不能单独使用
  • this 在本类中使用时可以省略(当 this . name = name 时不能省略),super 则不可以省略

2.吐槽

午觉睡习惯了 ,前天中午没睡午觉 , 结果今天中午想睡就睡不着了。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1