码迷,mamicode.com
首页 > 编程语言 > 详细

java基础-关键词super与this

时间:2014-09-28 00:22:00      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   java   sp   div   c   log   代码   

转发:itbooks

this是调用自己本身的构造函数,而super是调用父类中的构造函数。

这两个关键词是用在构造函数中的,这两个关键词的设计也是对封装特性的一种考虑,避免编写不必要的重复代码。

class Animal{
//定义构造函数,要求子类必须初始化名字
Animal(String _name){
this.name=_name;
}
//动物名字
private String name;

void showName(){
System.out.println(name);
}
}

class Dog extends Animal{
private int age;
//创建狗的实例的时候必须给它一个名字
Dog(String _name) {
//调用父类构造函数进行初始化
super(_name);
}

Dog(int _age,String _name){
this(_name);//调用自己的构造函数进行初始化
this.age=_age;
}
}

 

从上面列子可以看出来,super是用来调用父类的构造函数的,并且它必须在调用派生类构造函数之前调用,根据java初始化

顺序首先是初始化最顶级的父类依次往下初始化,最后才初始化本身构造函数。实例中this关键词是用来调用本身的构造函数,这样就没必要再去重复写一遍name的初始化了。

可以去试试,this是不允许再super之前调用的。

java基础-关键词super与this

标签:blog   http   ar   java   sp   div   c   log   代码   

原文地址:http://www.cnblogs.com/showstyle/p/3997345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!