1.10(java学习笔记)super关键字
2018-07-22 05:48:23来源:博客园 阅读 ()
supe主要是调用父类中被重写的方法及属性。
用下列代码那说明:
package cn.hcf.TestSuper; public class TestSuper { public static void main(String[] args){ Student stu = new Student(); stu.task(); } } class Person{ int ID; void task(){ ID = 100; System.out.println("工作"); } } class Student extends Person{ int ID; void task(){ //task方法已被子类重写 ID = 200; super.task(); //通过super调用父类中的task方法,应打印“工作”。 System.out.println("学习"); System.out.println("Person:" + super.ID + "\n" + "Student:" + ID); //super是父类中ID的值应为100 } }
运行结果: 工作 学习 Person:100 Student:200
还有一个知识点就是,所有类的第一句都隐含一个super(),写于不写(不写编译器会自动加上)都是这句话。;意思是调用父类的无参构造方法。
用下面代码说明:
1 package cn.hcf.TestSuper; 2 3 public class TestSuper { 4 public static void main(String[] args){ 5 Student stu = new Student(); 6 7 } 8 } 9 10 class Person{ 11 public Person(){
//super(); 隐含的 12 System.out.println("Person"); 13 } 14 } 15 16 class Student extends Person{
//super(); 隐含的 17 public Student(){ 18 System.out.println("Student"); 19 } 20 }
运行结果:
Person
Student
我们会发现,我们只创建了一个Studetn类的对象,应该只调用Student的无参构造方法,可是最后它也调用了Person的无参构造方法。
这是因为每一个类的第一句都隐含了一句super();所以是层层向上追溯,直到Oject类。
所以以我们这代码为例,层层向上追溯,最先创建好的是Object,然后创建Person,person包裹object,再创建Student,student包裹person,这样层层包裹。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:分布式session的管理
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash