Java学习笔记(3)

面向对象语言的第二大特征就是继承性,继承性的主要特点在于:可以实现已有类的功能扩充

继承问题的引出:
所谓良好的代码指的是结构型合理、适合于维护、可重用性高。
Java中实现继承类使用关键字extends,通常子类称为派生类,父类称为超类(superclass)
继承实现的目的在于子类可以重用父类的结构,并且可以扩充更多的功能在这里插入图片描述
在实例化子类对象的时候一定会实例化父类对象,目的是为了所有的属性可以进行空间的分配

super与this都可以调用构造方法,super是由子类调用父类的构造,而this是本类调用,且都必须放在构造方法调用的首行。所以两个语句不允许同时出现
super()表示的就是子类构造调用父类构造的语句,该语句只允许放在子类构造方法的首行。在默认情况下的处理,子类只会调用父类的无参构造,所以只有无参构造的情况下,super()语句写与不写效果一样。如果说父类没有无参构造,那么此时就必须利用super()明确调用有参构造

Java继承中的相关限制
1、Java之中不允许多重继承(错误实例:A继承B,C),只允许多层继承(例如:A继承B,B继承C),但是多层继承理论上不能超过三层,不然会出现代码的混乱
2、在进行继承关系定义的时候,实际上子类可以继承父类中的所有操作结构,但是对于私有操作属于隐式继承,对于非私有操作则是显式继承
虽然利用方法的覆写可以更好的扩充父类的功能,但是对于覆写也是有其自身要求的:被覆写的方法不能拥有比父类更为严格的访问控制权限
public>default>private
private和覆写没关系(注意)

面试题:请解释Override与Overloading的区别?Overloading时返回参数是否相同?
区别一、中文含义:Overloading(重载),Override(覆写)
区别二、概念:Overloading(方法名称相同,参数的类型及个数不同)
Override(方法名称、参数类型及个数、返回值相同)
区别三、权限:Overloading(没有权限限制)Override(被覆写的方法不能拥有更为严格的权限)
区别四、范围:Overloading(发生在一个类中)Override(发生在继承关系类中)
在进行方法重载的时候并没有对返回类型作出限制,但是好的习惯应该保持返回类型的一致

面试题:请解释super与this的区别?
1、在程序类中使用this表示先从本类查找所需要的属性或方法,如果本类中没有则去父类中查找。而super不查找子类,直接查找父类。
2、this与super都可以进行构造方法的调用,但是this()调用的是本类构造方法,而super()是由子类调用父类构造方法,两个语句都必须放在构造方法的首行,所以不能够同时出现。
3、this可以表示当前对象

final关键字
final在程序之中描述的是终接器的概念,在Java里面使用final关键字可以实现如下功能:1、定义不能够被继承的类。2、定义不能够被覆写的方法和常量。

实际上常量往往都是公共的定义,所以为了可以体现出共享的概念,往往会使用一种全局常量的形式来定义 public static final 来定义全局常量
在定义全局常量的时候每一个字母必须大写表示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值