Java面向对象_继承思想——super关键字

Posted sunNoI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象_继承思想——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共存。

 

以上是关于Java面向对象_继承思想——super关键字的主要内容,如果未能解决你的问题,请参考以下文章

初学者——面向对象的理解03

java面向对象编程(上)

专题三 面向对象

Java面向对象继承

java.面向对象设计的核心——类和对象

java学习中,面向对象的三大特性:封装继承多态 以及 super关键字和方法的重写(java 学习中的小记录)