192.168.1.41_20200828-方栋泽

一、问题

自己理解着摸棱两可的两个问题今天终于解决了

1.super关键字和this关键字的区别

相同点:

①都是与实例有关

​ 使用super和this都可以访问类成员和实例成员,但不建议使用;super关键字和this关键字都不能出现在static修饰的方法中和实例 初始化器中

②都可以用于调用构造方法

​ 当super()关键字和this()关键字用于调用构造时,必须放在构造方法的第一行;但是在同一个构造方法内,super关键字和this关键字 不能同时出现

不同点:

①表示的实例不同

​ this关键字代表的是本类的当前实例,即可以通过this关键字访问当前类中的成员

​ super关键字用于访问从父类继承的、可见的的成员

②调用的构造不同

​ this关键字用于调用本类中的其他重载构造

​ super关键字用于调用父类的构造

③访问的成员不同

​ this关键字可用于访问当前类中的的成员和从父类继承的、可见的成员

​ super关键字用于访问从父类继承的、可见的成员

④使用方式不同

​ this关键字可以单独使用,比如可以直接输出this或者当作返回值;this在本类中可以忽略

​ super关键字不能单独使用,必须通过super()或者super.的方法来使用

2.抽象类和接口的区别

相同点:

①都不能被实例化

​ 抽象类中虽然有构造方法,但是构造不能被实例化,只能被子类构造调用;接口中没有构造更不能被实例化

​ 不论是抽象类还是接口都是被abstract修饰的,只不过接口中可以不用显式书写

②修饰方法时

​ 都不能与final和static关键字连用

不同点:

①继承

​ 抽象类是类,只能继承一个直接父类;而接口可以继承多个父接口

②实现

​ 一个类可以实现多个接口;但是接口与接口之间只能继承不能实现

③构造

​ 抽象类中可以有构造,而接口中不能有构造

④初始化器

​ 抽象类中可以有初始化器,但是接口中不能有初始化器

⑤常量、变量

​ 抽象类中可以有常量和变量;但是接口中只能有常量

⑥抽象方法访问权限修饰符

​ 抽象类中可以有除了ptivate之外的修饰符,但是接口中只能有public修饰符

⑦字段

​ 抽象类可以有字段,而且是任意访问权限修饰符修饰的,但是接口中不能有字段,而且只能由public static final修饰的

二、吐槽

感觉自己总是会在下课前20分钟内睡着,而且是那种毫无任何反应的睡着了,一点反应措施都没有,总是会错过一些精彩的部分,感觉很可惜,是不是得在下课前21分钟的时候先抽自己几巴掌才不会睡着

标签

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