• 二、Java面向对象(8)_继承思想——super关键字


    2018-05-01

     

    super关键字

     

    什么是super?

    this:表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。

    super:表示当前对象的父类对象。(是在子类对象中对父类对象的引用

    super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

     

    在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。

    怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用。

     

    代码举例:

     1 //鸟类
     2 class Bird
     3 {
     4     public void fly(){
     5         System.out.println("自由飞翔");
     6     }
     7 }
     8 //企鹅
     9 
    10 class Penguin extends Bird
    11 {
    12     
    13     public void fly(){
    14         System.out.println("折翼天使");
    15     }
    16     public void say(){
    17         System.out.println("我要唱歌哈哈哈");
    18         super.fly();//使用super作为父类对象的引用对象来调用父类对象里面的fly()方法
    19     }
    20 }
    21 
    22 //Super关键字
    23 class SuperDemo 
    24 {
    25     public static void main(String[] args) 
    26     {
    27         //创建一个企鹅对象
    28         Penguin p = new Penguin();
    29         //调用飞翔方法
    30         p.say();
    31     }
    32 }

    输出结果:

     

    内存分析:

    参考博客:

    https://www.cnblogs.com/danbing/p/5034108.html

    https://www.cnblogs.com/ahfz/p/5890631.html

     

    super的用法总结

    1)普通的直接引用

      与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

    2)调用父类被覆盖的方法

    3)调用父类某一个构造函数

    参考:https://www.cnblogs.com/hasse/p/5023392.html(this和super的用法总结)

    static不能和super、this共存。

  • 相关阅读:
    1.惨不忍睹凌乱的定时任务
    二维码名片
    给定的逗号分隔的数字字符串转换为Table
    sql 列集合转换成逗号分隔的字符类型
    linq 分组
    触发器
    整合思路、步骤
    整合注意事项
    配置文件
    Struts2的线程安全性
  • 原文地址:https://www.cnblogs.com/sunNoI/p/8977087.html
Copyright © 2020-2023  润新知