Java super关键字、隐藏(static method+Filed)

  • (提醒)成员变量和静态方法出现在子类中,我们一般称之为隐藏,请看下面的代码,不要被子类中“覆写”的静态方法所迷惑。
  • 其实成员变量(无论是静态、实例、任何访问权限)、静态方法、私有方法都是静态绑定。
package cn.jxau.yuan.sharWeb;

/**
 * Created by 编程只服JAVA on 2017.06.06.
 */
public class ExtendsTest {
    int weight = 121;
    static void show(){
        System.out.println("Father");
    }
}

class Sub extends ExtendsTest{
    int weight = 123;

    /**
     * 父类中的成员变量和静态方法出现在子类中,我们一般称之为隐藏
     */
    static void show(){
        System.out.println("son");
    }

    public static void main(String[] args) {
        ExtendsTest extendsTest = new Sub();
        System.out.println("向上转型进行调用:.......");
        extendsTest.show();
        System.out.println(extendsTest.weight);
        System.out.println("直接调用:...............");
        Sub sub = new Sub();
        sub.show();
        System.out.println(sub.weight);
    }
}

运行结果:

image.png

super:某老师

  • super关键字:表示父类的绑定特征

  • 通过super到子类所继承的父类中找到与父类绑定的属性和方法
    语法:super.父类中的属性or方法

  • super用于调用父类中定义的属性和成员方法
    覆盖的方法都是跟子类绑定的,所以找不到与父类动态绑定的私有属性,所以需要通过super关键字找到父类静态绑定的方法和动态绑定的属性
    PS:super不能出现在静态方法里,因为静态方法都是通过类调用的,不能接收this指针

  • super在构造方法的作用:

  • 通过super来显示指定调用父类的哪个构造方法,同时给该构造方法传参数

  • 语法:如果要显示调用父类的某个构造方法,就必须放在子类构造方法的第一句并且传进对应的参数,只能写一条!

子类构造方法(String name){
    Super(name);//就会找父类的参数签名为String的构造方法,把this指针传给该构造方法
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,137评论 0 62
  • 20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...
    iOS_恒仔阅读 2,313评论 1 6
  • 1、.java源文件: 一个以”.java“为后缀的源文件:只能有一个与文件名相同的类,可以包含其他类。 2、类方...
    Hughman阅读 1,502评论 1 9
  • 我的二大爷今年86岁,有可能要做颈动脉介入手术。 老爷子平和心态面对。积极乐观的生活方式、琴棋书画唱无不精通,科学...
    丙由甲桂花儿阅读 143评论 0 0