1. super表示父类属性

一般没有意义,因为属性会被 private 封装,被 private 封装的属性是不能调用的。

语法:super.属性名称,明确表示从父类中查找属性

class Person {public String info = "父类";
}
class Student extends Person {public String info = "子类";public void fun() {System.out.println(super.info);System.out.println(this.info);}
}
public class SuperDiaoYongFuLeiShuXing {public static void main(String[] args) {Student stu = new Student();stu.fun();}
}


super.info 表示的父类中的属性,而 this.info 表示的是本类中的属性,此时的本类指的是 student 子类。

2. super表示父类方法

① 表示父类构造方法

语法:super(方法参数);

调用父类无参构造时,子类构造方法首行的super();可以省略;当父类不存在无参构造时,子类构造方法必须使用super(方法参数);明确表示当前调用的是哪个父类构造,此时super不能省略,且必须处于子类构造方法首行,此时子类不存在this构造器调用!!!

  • 调用父类无参构造
class Person {public Person() {System.out.println("Person类对象产生");}
}
class Student extends Person {public Student() {// 此句在无参构造时写与不写一样super();System.out.println("Student类对象产生");}
}
public class SuperBiaoShiFuLeiGouZaoFangFa {public static void main(String[] args) {new Student();}
}


因为这个是构造方法,实例化子类对象之前一定会先实例化父类对象,即先调用父类构造方法再调用子类构造方法,所以无论有没有super,这里的结果都是两个。

  • 调用父类有参构造

注意:语法是super(方法参数);,并没有参数类型!!!

class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;System.out.println("姓名是:"+name+", 年龄是:"+age);}
}
class Student extends Person {private String school;public Student(String name, int age, String school) {super(name, age);this.school = school;System.out.println("学校是:"+school);}
}
public class SuperBiaoShiFuLeiGouZaoFangFa {public static void main(String[] args) {new Student("张三", 20, "清华");}
}


② 表示父类被覆写的方法

语法:super.方法名(方法参数);

class Person {public void print() {System.out.println("父类");}
}
class Student extends Person {public void print() {super.print();System.out.println("子类");}
}
public class SuperDiaoYongFuLeiBeiFuXieDeFangFa {public static void main(String[] args) {new Student().print();}
}


print() 这个方法被子类覆写了,子类的 print() 方法中没有没有 super 构造器调用,是不会打印出 “父类” 这个结果的,如果有了 super 构造器调用则super 此时就会表示父类的被覆写的方法。

3. this 和 super 的区别


能使用super.方法();一定要明确记住是父类的操作。

super关键字的用法相关推荐

  1. java编程里的values怎么使用,详解Java编程中super关键字的用法

    这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...

  2. 教妹学Java(三十三):super 关键字的用法

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第二十七篇,今天我们来谈谈 Java 的 super 关键字--super 关键字有哪些用法? ...

  3. java super关键字的作用_详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...

  4. Java中this、super关键字的用法

    一.this关键字代表当前对象的引用,用在当前类中,有三个方法: this()代表在当前类中调用其他的构造方法,并且只能在构造方法中写,只能调用一次,只能写在第一行. this.date代表访问当前类 ...

  5. java中super关键字的用法

    class Sum { int n; float f() { float sum=0; for(int i=1;i<=n;i++) sum=sum+i; System.out.println(& ...

  6. This和Super关键字的对比

    this和Super关键字 this和Super关键字的对比 Super关键字的用法如下: 1. super关键字代表了父类空间的引用: 2. super关键字的作用: 3. super关键字调用父类 ...

  7. 1.4 super关键字详解

    由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字.super 可以用来访问父类的构造方法.普通方法和属性. super 关键字的功能: 在子类的构造方法中显 ...

  8. Java中继承、this关键字、super关键字

    继承: 概述:当多个类中存在相同属性和行为时,将这些相同的内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承抽离出来的这个类即可. 子类:当某个类继承了另一个类的时候,可以把这个某类 ...

  9. this和super关键字

    在java中,this和super关键字是与继承关系密切相关的,this和super可以看做是变量:this用来指向当前对象或类的实例变量,super用来指向当前对象的直接父类对象. 1.this关键 ...

最新文章

  1. 16道嵌入式C语言面试题
  2. when ajax,jQuery.when()
  3. 初识好朋友计算机课件,初识电脑朋友.ppt
  4. 转载:【菜鸟玩Linux开发】通过MySQL自动同步刷新Redis
  5. 结构体命名中的尾标ST是什么意思?(struct)
  6. 华夫饼为什么不松软_用了3年的华夫饼配方,掌握这个配比,外酥里软超,比蛋糕好吃...
  7. pandas数据存储于读取
  8. 微信5.0登录提示服务器繁忙,iOS集成友盟社会化分享微信无法登录?
  9. 前端学习(2615):数据映射map
  10. oracle 集群 配置,Oracle集群配置
  11. JUnit 4和JUnit 5区别
  12. Pessimistic and Optimistic locking
  13. 第 17 章 垃圾回收器
  14. 圆形led屏幕_展示厅LED大屏幕安装价格/芮城
  15. 【刷题】BZOJ 5154 [Tjoi2014]匹配
  16. 国产Linux二十年揭秘
  17. 动软代码生成器连接oracle数据库
  18. 《计算机网络(第7版)》-谢希仁
  19. Java类加载器深入探索
  20. 数据挖掘肿瘤预测_肿瘤分析数据挖掘及信息解读

热门文章

  1. Java-Collection集合和Map集合总结
  2. Java项目自动生成接口文档
  3. 共识协议(5)DPOS委托权益证明
  4. Android 镜像
  5. Java 8 并发篇 - 冷静分析 Synchronized(下)
  6. Qt4.7.3在dm6446平台上的移植经验与教训
  7. 安装Ubuntu18.04虚拟机
  8. 免费空间如何建设网站?
  9. 一道google面试题--自然数e中出现的连续的第一个10个数字组成的质数
  10. Ipad越狱注意事项