1.java中super关键字的应用
2020-04-05 07:24
627 查看
super对于构造方法的使用
package com.awaycode; public class Student extends Person{ Student(){ super(); //super(12); }; }
package com.awaycode; public class Person { int age = 10; Person(){ System.out.println("父类~~~~的无参数构造方法被使用"); }; Person(int age) { this.age=age; System.out.println("父类~~~~的有参方法被调用"); }; }
在java里面,子类继承父类,子类在创建的时候就会调用父类的构造方法;
把student的构造方法中的 super(); super(12); 这两条全部 注释掉 也会打印,如下图所示
只注释掉super(12),打印结果和上图一样,说明在子类默认调用了父类的无参构造方法
把super(),注释掉保留 super(12),打印结果如下图所示
调用父类的构造方法的确会改变,子类中的变量值
但是如果 改为
package com.awaycode; public class Student extends Person{ int age = 19; //多加这一句,就会发现运行结果 ,变成了19 Student(){ //super(); super(12); }; }
这说明在子类继承父类的时候 如果重写变量,那么重写优先级比super.父类构造函数高,
如果在后方进行修改
打印的结果
验证出结论只要子类重写了父类的变量值,super方法无法改变子类的值!!!!
在没有重写 age的情况下(就是在子类中不进行int age) 可以在super 在构造函数 普通函数中都可以改变!!!!
super调用父类的一些方法
ppackage com.awaycode; public class Person { int age = 10; Person(){ System.out.println("父类~~~~的无参数构造方法被使用"); }; Person(int age) { this.age=age; System.out.println("父类~~~~的有参方法被调用"); }; public void flfnc() { System.out.println("我是父类的flfnc方法"); System.out.println(age); } }
package com.awaycode; public class Student extends Person{ int age = 18; Student(){ super(15); super.flfnc(); System.out.print("在student中"); System.out.println(this.age); }; }
在注释掉sper(15) 打印的内容为
在不注释掉sper(15)打印的内容为
由此可见子类调用父类的super方法
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 第2章 Java编程基础——FAQ2.05 super关键字有什么含义?在哪些情况下应用?
- eclipse使用、svn插件安装、java this关键字、super关键字
- Java中this和super关键字深究
- java复习——this instanceof super关键字的用法
- Java this关键字和super关键字
- java方法重写和super关键字实例详解
- java关键字之super
- java中关键字this和super比较
- java学习之路 之 高级类特性-四种权限修饰符、关键字super、子类对象的实例化过程
- JAVA super关键字
- Java Volatile关键字 以及long,double在多线程中的应用
- Java关键字介绍之this与super
- Java基础-super关键字与this关键字
- Java学习——super 与 this 关键字
- java继承中super关键字的用法
- Java基础:this关键字、super关键字
- Java关键字this、super使用总结
- Java方法继承、方法重载、方法覆盖,多态和super关键字小总结
- JAVA面向对象-----super关键字
- java基础之super关键字