Java基础篇--继承(2018.8.23)

继承是当多个类中存在相同的属性和方法时,将这些内容抽取到单独的一个类中,使得这些类可以通过继承这个类来获得这些属性和方法。被继承的这个类称为父类(超类、基类),继承它的这些类称为子类。继承是一个is a的关系,即子类是一个父类。子类可以访问父类中所有非私有的属性和方法。在Java语法上通过extends 关键字来表达这种继承关系:class 子类 extends 父类。

继承的特点:1.Java只支持单继承,不支持多继承。一个类只能有一个父类,不能有多个父类。2.Java支持多重继承,即B继承A,C继承B。

继承的好处:1.提高代码的复用性。2.让类与类之间产生关系,是多态的前提。

继承中的Super和This关键字的区别:Super代表父类的存储空间,可以理解为是父类的引用,是当前子类对父类的引用。This代表的是子类的存储空间,是当前类的对象内的方法和属性的引用。Super和This的使用场景是:当父类和子类出现同名成员时,可以用Super和This进行区分。子类要调用父类构造函数时,可以在子类的构造函数中使用Super调用。Super和This都必须出现在类构造函数的第一行,且不能同时出现。

子类可以继承父类中所有非私有的属性和方法。但是Java对于子类继承过来的属性和方法具有不同的处理方式:1.对于属性,使用的是同名属性隐藏机制,所谓的同名属性隐藏机制是指:在具有父子关系的两个类中,子类中相同名字的属性会使得从父类中继承过来的同名属性变得不可见,不管类型是否一致,名称一致的两个属性就是同名属性。在子类中,无法简单地通过属性名称来获取父类中的属性,而是必须通过父类名称加属性名称(Super.strA)的方法才可以访问父类中的该属性。一般而言,为了代码容易阅读,极其不建议在父类和子类中使用同名属性。类的属性成员不能像方法成员一样被重写。当一个子类定义了一个与父类同名的属性,实际上就是子类定义了一个新的属性成员,该属性同时隐藏了父类中的同名属性。2.对于方法,使用方法的重写(覆盖)机制来实现多态,是多态的核心。

方法的重写(覆盖)
子类中出现和父类一模一样的方法时,会出现重写的操作,也称为覆盖。重写的使用场景一般是当子类需要父类的功能,而功能的主体子类又有自己特定的内容时,可以重写父类中的
方法,这样,既沿袭了父类的功能,又定义了子类特有的内容。

重写的注意点:
1.子类方法的名称、返回类型、参数类型和顺序均与父类的一致。
2.子类方法的访问权限必须大于private,不包括private,因为父类的private成员子类不可见,更不用谈及重写。
3.方法的重写只存在于子类和父类之间,同一个类中只能重载,即同样的方法名不同的参数。
4.父类的静态方法不能被子类覆盖为非静态方法。
5.被Final关键字修饰的方法不能被重写。

方法的重载
在Java中同一个类的多个方法可以有相同的名字,但是拥有不同的参数列表,这就是方法的重载。参数列表又叫参数签名,包括参数的类型、个数、顺序,只要有一个不同那就称为参数列表不同。重载是面向对象的一个基本特性。

重载的注意点:
1.参数列表必须不同,参数列表不同包括:类型不同、个数不同、顺序不同,仅仅参数变量名称不同不算重载。
2.方法名称必须相同,方法的返回类型可以不同也可以相同,仅仅返回类型不同不可以称为方法的重载。
3.构造方法也可以重载。
4.静态方法也可以重载。
5.方法的修饰符可以不相同。

weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值