java super关键字知识点详解

在对一些父类的调用上,我们需要借助java中的关键字使用,这就是super关键字,可以归纳为三种方法:作用于类、方法名和构造函数。可以把它看做是使用父类的一个工具,相信大家在之前类的使用中有所接触。下面我们就super的说明、三种用法、注意事项进行说明,然后在实例中体会用法。

1.说明

super相当于是指代当前的对象的父类,调用父类的属性、方法和构造方法

2.用法

(1)super.变量/对象名;

使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作

(2)super.方法名();

直接访问并调用父类中的方法

(3)super();

调用父类的初始化方法,其实就是调用父类中的public xxx()方法,通常第三种指代的是super()的省略写法,系统会默认添加此句。

特殊情况:如果父类没有无参的构造函数,所以子类需要在自己的构造函数中显示的调用父类的构造函数,即不能使用系统默认的“super()”,而需要显性写出super(xxx)

3.注意事项

(1)表示调用父类的构造函数。也是一个特殊语法,不是变量,没有什么类型。

(2)可以在一个类的非static成员内部使用。比如super.method()。

但是,注意,这个super.method()只是长得跟some_var.method()一样,一个语法糖而已。实质上,"super"根本不是一个变量。

(3)super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法。

4.实例

class Person{
  private String name;
  private int age;
  public Person(String name){
    this.name = name;
  }
  public Person(String name, int age){
    this(name);  //this调用构造方法必须放在第一行,这里这样写是为了避免代码重复
    this.age = age;
  }
  public Person(){
    System.out.println("1.Person类的构造方法");
  }
}
class Student extends Person{
  private String school;
  public Student(){
    super("yy");
    System.out.println("Student类的构造方法");
  }
  public Student(String school){
    this();
    //super("yy");  //对super的调用必须在构造方法的第一行
    System.out.println("2.Student类的构造方法");
  }
}
public class Day6{
  public static void main(String[] args){
    Student stu = new Student("beida");
  }
}

知识点扩展:

java Super 用法详解

1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量;

2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值;

3)整个调用的过程和递归调用函数有点类似,不断充气球,直到整个气球膨胀起来,不断的深层递进,遇到停止标记,逐层的跳出来。

到此这篇关于java super关键字知识点详解的文章就介绍到这了,更多相关java super关键字是什么内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java super关键字用法实战案例分析

    本文实例讲述了Java super关键字用法.分享给大家供大家参考,具体如下: 一 点睛 如果子类继承了父类的数据成员,这时就需要调用父类的有参构造方法,来初始化来自父类的数据成员,这时就需要显示的调用父类中的有参构造方法super(参数1,参数2). 二 实战--super调用父类中的构造方法 1 代码 class Person { String name; int age; public Person( String name, int age ) // 父类的构造方法 { this.nam

  • Java泛型extends及super区别实例解析

    <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. <? extends T>:是指"上界通配符(Upper Bounds Wildcards)" <? super T>:是指"下界通配符(Lower Bounds Wildcards)" 为什么要用通配符和边界? 使用泛型的过程中,经常出现一种很

  • Java中的构造方法this、super的用法详解

    1.构造方法 定义:与类同名没有返回值的方法称为构造方法: public class test1 { private String name; private int age; public test1(){ } } 上面的test1()是默认构造方法,即使没有定义java虚拟机在运行的时候也会自动生成, 当然如果定义了重载的构造方法便不会自动生成: 构造方法的作用有两点1.通过构造方法建立一个对象:2.通过构造方法可以快速的赋初值: public class Main { public sta

  • Java中super和this的用法详解

    super 用法 super关键字用来访问父类内容,具体用法可分为三种: 1.子类的成员方法访问父类的成员变量 public class Animal { public int age = 10; } class Dog extends Animal { public int age = 5; public void showAge() { System.out.println(super.age); } } 2.子类的成员方法访问父类的成员方法 public class Animal { pu

  • java基础知识 super和this使用解析

    这篇文章主要介绍了java基础知识 super和this使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 super关键字的用法有三种: 1.在子类的成员方法中,访问父类的成员变量 2.在子类的成员方法中,访问父类的成员方法 3.在子类的构造方法中,访问父类的构造方法 this和super区别 super关键字用来访问父类内容,this关键字用来访问本类内容. 1.在本类的成员方法中,访问本类的成员变量 2.在本类的成员方法中,访问本类的

  • Java this super代码实例及使用方法总结

    这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ 一.this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身. 2.形参与成员名字重名,用this来区分: package com.demo; public class Person { private int age = 10; public Pe

  • Java super关键字调用父类过程解析

    这篇文章主要介绍了Java super关键字调用父类过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多说,直接上代码: package com.my.pac14; /** * @auther Summerday */ public class SuperTest { public static void main(String[] args) { SubClass sb = new SubClass(20); //创建子类的对象,调

  • java super关键字知识点详解

    在对一些父类的调用上,我们需要借助java中的关键字使用,这就是super关键字,可以归纳为三种方法:作用于类.方法名和构造函数.可以把它看做是使用父类的一个工具,相信大家在之前类的使用中有所接触.下面我们就super的说明.三种用法.注意事项进行说明,然后在实例中体会用法. 1.说明 super相当于是指代当前的对象的父类,调用父类的属性.方法和构造方法 2.用法 (1)super.变量/对象名: 使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作 (2)super.方法名():

  • java伪泛型知识点详解

    说明 1.Java中的泛型是伪泛型.这种泛型实现方法称为类型擦除 ,基于这种方法实现的泛型称为伪泛型. 2.由于Java的泛型只在编译阶段发挥作用,因此在写代码时,起到了检查的作用,当代码运行时,它的内部并没有泛型. 实例 List<String> l1 = new ArrayList<String>(); List<Integer> l2 = new ArrayList<Integer>(); System.out.println(l1.getClass(

  • Java instanceof关键字用法详解及注意事项

    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false. 注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不能确定类型,则通过编译,

  • Java字符串编码知识点详解介绍

    在 Java 中,当我们处理String时,有时需要将字符串编码为特定字符集.编码是一种将数据从一种格式转换为另一种格式的方法.字符串对象使用 UTF-16 编码.UTF-16 的问题在于它不能被修改.只有一种方法可以用来获得不同的编码,即 byte[] 数组.如果我们得到意外的数据,编码的方式是不合适的.在本节中,我们将学习如何在Java中对字符串进行编码. 在继续本节之前,我们必须了解字符编码.让我们快速浏览一下.让我们了解为什么我们需要对字符串进行编码. 字符编码是一种将文本数据转换为二进

  • java方法重写和super关键字实例详解

     java方法重写和super关键字  在继承中,其实就是子类定义了和父类同名的方法 就是方法,属性都是相通的 重写限制:  被子类重写的方法不能拥有比父类方法更加严格的权限 super:强行调用父类方法的执行 重载和重写的区别?  重 载是发生在一个类中   对权限没有要求   而且重载的方法参数可以不同 重写发生在继承汇总      被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同  实例代码: class A{ public void tell(){ Syst

  • Java位运算知识点详解

    在日常的Java开发中,位运算使用的不多,使用的更多的是算数运算(+.-.*./.%).关系运算(<.>.<=.>=.==.!=)和逻辑运算(&&.||.!),所以相对来说对位运算不是那么熟悉,本文将以Java的位运算来详细介绍下位运算及其应用. 1. 位运算起源 位运算起源于C语言的低级操作,Java的设计初衷是嵌入到电视机顶盒内,所以这种低级操作方式被保留下来.所谓的低级操作,是因为位运算的操作对象是二进制位,但是这种低级操作对计算机而言是非常简单直接,友好高效

  • Java单例模式的知识点详解

    懒汉模式与饿汉模式 懒汉模式就是懒加载,用到的时候去加载,存在线程安全问题,需要手动地加锁控制.它的优点是类加载的速度比较快,按需加载,节省资源. 饿汉模式就是在类加载的时候会创建出实例.它天生就不存在线程安全问题.但是类加载的速度会变慢且耗费资源. 懒汉模式-单重检查 示例代码如下: public class LazySingleton { private static LazySingleton singletoninstance = null; private Object data =

  • java二进制运算基础知识点详解

    一.二进制位运算 1. 按位与(&) 位运算实质是将参与运算的数字转换为二进制,而后逐位对应进行运算. 按位与运算为:两位全为1,结果为1,即1&1=1,1&0=0,0&1=0,0&0=0. 例如51 & 5 -> 00110011 & 00000101 = 00000001 -> 51 & 5 = 1 特殊用法: (1)与0相与可清零. (2)与1相与可保留原值,可从一个数中取某些位.例如需要取10101110中的低四位,101

  • Java super关键字的用法详解

    目录 super关键字的三种用法: 1. super.成员变量 2. super.成员方法 3. super():调用父类中的构造方法 3.1.1 隐式调用父类无参数构造方法super() 3.1.2 显式调用父类有参数构造方法super(id) super关键字作用:在子类内部调用父类对象 基础语法: 1.在类的继承中,当子类继承了父类, 在构造子类的时候,一定要先帮助父类进行构造: 2. 调用super()必须写在子类构造方法的第一行,以保证在执行任何动作前,对象已经完成了初始化,否则编译不

  • Java super关键字的使用详解

    目录 1.super介绍 2.super的基本使用 3.子类和父类方法的调用细节 4.super和this的区别 1.super介绍 我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类. 用于访问父类的属性,方法,构造器 2.super的基本使用 我们来演示以下子类调用父类的属性,方法和构造器 父类: /** * super关键字演示父类 */ public class SuperFather { public int n1 = 100; int n2 = 110; pr

随机推荐