Java 继承、super() 关键字使用、super 和 this的区别

这篇具有很好参考价值的文章主要介绍了Java 继承、super() 关键字使用、super 和 this的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 继承、super() 关键字使用、super 和 this的区别

1. 继承

继承是子类使用 extends 关键字来继承父类获取相同的属性和方法,可以解决代码的复用性问题

继承的基本思想:父类的构造器进行父类初始化,子类的构造器进行子类的初始化

继承使用细节:

子类在使用父类的方法或属性时,不能直接访问使用 private 私有修饰符修饰的属性或方法,可以通过公共的方法来间接获取

子类的无参构造器会默认调用 super() 方法来调用父类的无参构造器,若父类没有无参构造器,子类需要手动调用父类的其他构造器

子类在使用 super() 或 this() 使用父类或本类的构造器,则需要放到构造器的第一行,并且 super() 和 this() 只能有一个,super() 默认在每个子类的构造器都会生成,不管写没写,系统自动会调用 super() 方法

Object 是所有类的父类,父类的调用不局限直接父类,将一直追溯到 最顶级的 Object 类

子类最多只能继承一个父类,如果想要多继承的话,则需要间接继承,即继承父类,父类继承其父类

继承必须满足 is-a 的逻辑关系,不能滥用继承

子类继承后使用属性的时候层次递增,先寻本类是否有此属性,若没有则向父类依次往后寻找,若期间碰到了私有属性则不能继续访问其他属性,如果需要访问私有属性,只能让此类提供公共方法让子类调用方法来访问

2. super 关键字

super 可以理解为对父类的引用,通过 "." 来获取父类的非私有的属性或方法

super 可以访问父类的构造器

子类继承父类需要调用父类方法时,当方法名都相同时,通过 super. 语法可以直接调用,这和直接或用this调用方法不同,后者当中这两个方式可以等价为一个方式,因为 this 和直接调用都是在本类当中开始寻找,之后依次递增到父类当中调用方法。如果方法名都不重名,则这 3 种方式都可以调用

super 不仅仅访问直接父类,若父类的上面还有相同的方法名则就近选择,继承的本质就是建立查找关系。

3. this 与 super 的区别

this 在调用方法或使用属性的时候都默认先从本类当中寻找是否存在,若不存在则从父级开始就近寻找。而 super 在调用方法或使用属性的时候直接从其父类开始寻找

this 在创建构造器当中使用时,必须调用本类的构造器。而 super 则调用父类构造器,这两种方式都需要放在构造器的第一行且只能有一个。

在一些特殊的含义时候,this 还可以认为是本类的对象,而 super 则是子类对父类访问的对象。

文章来源地址https://www.toymoban.com/news/detail-556071.html

到了这里,关于Java 继承、super() 关键字使用、super 和 this的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaSE专栏57】深度解析Java中的this和super关键字:用途、差异和实际应用

    博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之一~ 🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄

    2024年02月07日
    浏览(32)
  • JavaSE基础(19) super,this 关键字

    子类对象的创建过程: 子类的构造方法中,默认先调用父类的无参构造方法。如果没有显示的调用,那么隐含着super()。         可以访问父类的属性         可以访问父类的方法         指代父类的构造方法, 如果有多个,靠参数来区分。要在第一行。      

    2023年04月10日
    浏览(29)
  • JavaScript的static、this、super关键字介绍

    static: ☆ static用于定义类的静态方法和静态属性。 ☆ 静态方法是直接与类相关联的方法,不需要实例化类即可调用。 ☆ 静态属性是类本身的属性,而不是实例的属性。 ☆ 在静态方法内部,不能使用this来引用实例,因为静态方法与特定实例无关。 th

    2024年02月16日
    浏览(29)
  • Java关键字super解释

    又是看了一大堆文字介绍,非常系统和官方,理解要费半天劲,所以总结一下super它到底有啥用,还有代码演示也会放出来,这里使用的IDE为idea 还是先官方一下 在java中,super表示超类(就是我们俗称的父类),当子类需要引用父类的字段时,我们就可以使用super.FieldName. 因此

    2024年02月07日
    浏览(37)
  • 每天一个知识点 - 了解和使用super关键字

    super是一个,super和this很类似 可以使用 super() 函数访问父类的构造函数,从而委托父类完成一些初始化的工作 如果子类重写了父类的中某个方法的实现,可以通过使用 super 来引用父类的方法实现        super( )函数是用于调用父类的一个方法,指向了当前对象自

    2024年02月21日
    浏览(35)
  • ES6中的Class关键字和super()方法,使用详细(class类和super()方法)

    简介:在ES6中,我们可以使用class来定义类,并通过 extends 实现类的继承,然后在子类中,我们可以使用 super() 来调用父类的构造函数;今天来分享下class的使用详细。 1、 首先,使用class,定义一个父类; 2、 然后再定义一个子类, 通过ex

    2024年02月12日
    浏览(39)
  • Java编程练习之this关键字

    当类中的成员变量与成员方法中的参数重名时,会导致方法无法直接使用成员变量。 示例:创建demo类,定义一个成员变量name并赋初值,再定义一个成员方法showName(String name),输出方法中name的值。代码如下: package zhtestdemo; public class demo {  //创建类,类名叫demo /**/     Str

    2024年01月22日
    浏览(51)
  • Java 对象创建流程、this 关键字

    2024年02月12日
    浏览(38)
  • 【Java 基础】构造方法和 this 关键字详解

    《 Java 零基础入门到精通 》 专栏持续更新中。通过本专栏你将学习到 Java 从 入门 到 进阶 再到 实战 的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java

    2023年04月14日
    浏览(39)
  • Java 面向对象 03 就近原则和this关键字

    对于起名字需要见名知意,所以这个String n 不太合适: 但是如果将n改为name,会与第五行代码的name重复: 运行代码发现,获取后的姓名为默认值,是null 引入就近原则: 此处打印的是age=10,但是如果想使用成员位置的age ,应该使用this 代码: 运行结果: 使用this关键

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包