`

java中super关键字的作用和用法

 
阅读更多

 

   super用于在 派生类中调用父类的重名方法,或者引用重名的变量。

 

    super被用在派生类中,就是为了明确调用父类的方法。

 

 

示例(很浅显易懂):

 

      FROM: http://stackoverflow.com/questions/3767365/super-in-java

 

-------------------------------------------------

1.Super keyword is used to call immediate parent.

2.Super keyword can be used with instance members i.e., instance variables and instance methods.

3.Super keyword can be used within constructor to call the constructor of parent class.

OK now let’s practically implement this points of super keyword.

Check out the difference between program 1 and 2. Here program 2 proofs our first statement of Super keyword in Java.

Program 1

class base
{
    int a = 100;
}

class sup1 extends base
{
    int a = 200;
    void show()
    {
        System.out.println(a);
        System.out.println(a);
    }
    public static void main(String[] args)
    {
        new sup1().show();
    }
}

Output : -

200

200

Now check out the program 2 and try to figure out the main difference.

Program 2

class base
{
    int a = 100;
}

class sup2 extends base
{
    int a = 200;
    void show()
    {
        System.out.println(super.a);
        System.out.println(a);
    }
    public static void main(String[] args)
    {
        new sup2().show();
    }
}

Output

100

200

In the program 1, the output was only of the derived class. It couldn’t print the variable of base class or parent class. But in the program 2, we used a super keyword with the variable a while printing its output and instead of printing the value of variable a of derived, it printed the value of variable a of base class. So it proofs that Super keyword is used to call immediate parent.

OK now check out the difference between program 3 and program 4

Program 3

class base
{
    int a = 100;
    void show()
    {
        System.out.println(a);
    }
}

class sup3 extends base
{
    int a = 200;
    void show()
    {
        System.out.println(a);
    }
    public static void main(String[] args)
    {
        new sup3().show();
    }
}

Output

200

Here the output is 200. When we called the show function, the show function of derived class was called. But what should we do if we want to call the show function of the parent class. Check out the program 4 for solution.

Program 4

class base
{
    int a = 100;
    void show()
    {
        System.out.println(a);
    }
}

class sup4 extends base
{
    int a = 200;
    void show()
    {
        super.show();
        System.out.println(a);
    }
    public static void main(String[] args)
    {
        new sup4().show();
    }
}

Output

100

200

Here we are getting two output 100 and 200. When the show function of derived class is invoke, it first calls the show function of parent class because inside the show function of derived class we called the show function of parent class by putting the super keyword before the function name.

 

 

分享到:
评论

相关推荐

    java中super关键字的三种用法

    super 关键字在 Java 中有着非常重要的作用,它可以帮助我们在子类中访问父类的成员变量或方法,并且可以用来调用父类的构造方法。正确地使用 super 关键字可以使我们的代码更加简洁、可读性更高。

    Java super关键字使用

    本篇文章将深入探讨`super`关键字的使用方法,包括其在构造函数、方法调用以及字段访问中的应用。 ### 1. 构造函数调用 当子类继承父类时,有时候我们需要在子类的构造函数中调用父类的构造函数。Java中的`super`...

    java中带super关键字的程序内存分析

    3. **覆盖与super调用**:当子类重写父类的方法时,如果子类方法中需要调用父类被覆盖的方法,可以使用`super.`调用。这样,子类方法就可以利用父类的行为,同时添加自己的特定逻辑。 4. **访问权限控制**:`super`...

    java中super关键字的三种用法.pdf

    Java 中的 super 关键字是非常重要的,它可以用于访问父类的成员变量和方法。下面我们将讨论 super 关键字的三种用法。 第一种用法:在子类的构造函数中调用父类的构造方法 在子类的构造函数中,super 关键字可以...

    1.java中super关键字的应用

    在Java编程语言中,`super`关键字是一个非常重要的概念,它用于引用当前对象的父类。`super`关键字主要用于以下几种情况:调用...如果你在实际使用中遇到问题或对`super`关键字的用法还有疑惑,随时联系我进行讨论。

    java中的关键字大全

    在Java编程语言中,关键字是一组预定义的词汇,它们具有特殊的含义和用途。理解和掌握这些关键字对于编写有效的Java程序至关重要。本文将详细介绍Java中的一些核心关键字,并提供相应的解释和示例。 #### 关键字...

    Java中this与super关键字的对比使用.pdf

    本文档通过分析this与super关键字的基本用法,明确指出它们在Java面向对象编程中的重要性和使用场景。理解this与super关键字的用法有助于程序员编写出更加规范、严谨的代码,并能够有效管理继承体系中类的属性和方法...

    javathis和super用法 this和 super 关键字的区别

    ### Java中的this与super关键字详解 #### 一、引言 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在面向对象编程中扮演着不可或缺的角色。正确理解和使用这两个关键字对于编写高质量、易于维护...

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

    Java super关键字用法实战案例分析 Java super关键字是Java编程语言中的一种特殊关键字,用于访问父类的成员变量和方法。在Java中,子类继承父类时,需要使用super关键字来调用父类的构造方法、属性和方法。本文将...

    JAVA中的关键字和保留字

    Java是一种广泛使用的面向对象的编程语言,其语法严谨,...以上就是Java中的关键字和保留字的一些基本解释,它们在编写Java程序时起着至关重要的作用,正确理解和使用这些关键字能够帮助开发者写出高效、安全的代码。

    Java super关键字的使用方法详解

    Java super关键字的使用方法详解 Java super关键字是Java语言中的一种关键字,用于访问父类的成员变量和...通过本文,大家可以了解super关键字的使用方法和限制,掌握super关键字的使用技巧,提高自己的Java编程能力。

    Java中的this和super的用法 

    使用 this 和 super 关键字可以帮助我们在编程中避免一些常见的错误,例如,在某个方法中,如果形参名与当前对象的成员变量名相同,使用 this 关键字可以明确地指明当前对象的成员变量名。 此外,使用 this 和 ...

    详解Java super 关键字.pdf

    在Java编程中,`super`关键字是一个非常重要的概念,它允许子类引用其直接父类的实例变量、方法,甚至调用父类的构造函数。理解并熟练运用`super`关键字是成为一名合格的Java开发者的关键技能之一。 首先,`super`...

    Java基础之关键字_Java基础之关键字_源码

    在编程语言的学习中,了解和掌握关键字是至关重要的一步,特别是在Java这种强类型的语言中。本文将深入探讨Java中的关键字,这些关键字是Java语法结构的基础,它们被Java编译器特殊处理,有着特定的含义和功能。 ...

    java之super关键字用法实例解析

    当子类和父类有同名的成员变量时,通过`super`关键字可以明确指定使用父类的成员变量。例如,在`ChildClass`中,`value`变量在子类和父类中都存在,但`super.value`表示引用父类`FatherClass`的`value`。 2. 调用...

    Java 程序显示 Super 关键字在类中的使用.docx

    总结来说,`super` 关键字是 Java 继承机制中的一个重要工具,它使得子类能够访问和调用父类的构造函数、方法和字段,从而实现代码复用和扩展。在编写 Java 代码时,理解并正确使用 `super` 关键字对于有效地利用...

    Java中this与super关键字的对比使用.zip

    在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在类的继承和对象引用中起着至关重要的作用。本篇将详细阐述这两个关键字的含义、用法以及它们之间的区别。 首先,`this`关键字代表当前对象的引用...

    Java中this与super的用法

    例如,在某个方法中,如果有一个形参名与当前对象的某个成员变量同名,我们需要使用 this 关键字来明确地指定我们要访问的成员变量。例如: ```java public class DemoThis { private String name; private int ...

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

    Java 方法重写和 super 关键字实例详解 Java 方法重写是 Java 编程语言中的一种机制,允许子类提供特定于自己的实现以替代父类的方法。这种机制可以使得子类可以根据自己的需求来修改父类的方法,以满足自己的需求...

    Java中各种关键字的作用及区别.docx

    - 在子类的方法中,可以使用`super.方法名`来调用父类中的方法。 ```java class Parent { void display() { System.out.println("Parent's display"); } } public class Child extends Parent { @...

Global site tag (gtag.js) - Google Analytics