黑马程序员技术交流社区
标题:
super在子父类怎么用
[打印本页]
作者:
炉海佳
时间:
2013-2-20 17:13
标题:
super在子父类怎么用
视频看了好几遍虽然答案都记住了还是不太理解,只知道父类做完了的事情子类直接掉用就可以了,用super();包括括号里面加参数,希望举例说明
作者:
wahaha
时间:
2013-2-20 17:30
super代表父类所属的空间 只能定义在构造函数的第一行,不能喝this同时出现 。如果父类没有空参的构造函数,子类的构造函数中必须手动调用super指定要访问的父类中的构造函数
作者:
李挺
时间:
2013-2-20 18:30
super() 是调用父类的无参数初始化方式,这句话是可以不写的,要写就得写第一行,要是像super(2) ,就是调用父类中有参数的初始化方式
class Person{
int age;
Person(){
age=30;
}
Person(int age){
this.age=age;
}
}
class Student extends Person{
Student(){
//super(35);看这个
}
public void method(){
System.out.println(age);
}
}
class SuperTest {
public static void main(String[] args) {
Student p=new Student();
p.method();
}
}
复制代码
结果是30,要是把//super(35);取消注释,结果就是35
至于调用父类的参数或者方法得用super.
作者:
偏執旳、靑春
时间:
2013-2-20 18:40
super是用来调用父类里面的构造函数的。如果一个子类可能有多个构造函数,他们直接的调用使用this,而子类去调用父类的构造函数用super()
作者:
汪平乐
时间:
2013-2-20 22:49
本帖最后由 汪平乐 于 2013-2-20 22:52 编辑
我写了下面的代码,希望对你有帮助,然后参照毕老师讲课的ppt加深理解 《Java基础[04-继承上]》{:soso_e133:}
class Animal
{
private String name;
Animal()
{
System.out.println("父类空构造函数初始化动作");
}
Animal(String name)
{
this.name = name;
System.out.println("父类 String name构造函数的初始化动作");
}
}
class Bird extends Animal
{
private String name;
private int age;
Bird()
{
//super(); 默认的语句,因子类继承了父类,所以父类空构造函数是默认执行的。
System.out.println("子类空构造函数初始化动作");
}
Bird(String name)
{
super(name);//对应的父类带(String name)的构造函数,这里不可以执行super();
this.name = name;
System.out.println("子类String name构造函数的初始化动作");
}
Bird (String name,int age)
{
this();//本类对象调用
//this(name); //这里this()或this(name)只能出现一个,因为this()只能出现在构造函数的第一行
//super()也是一样,只能出现在构造函数的第一行,并且在这里调用super(String name ,int age)的构造方法
this.name = name;
this.age = age;
System.out.println("子类String name,int age 构造函数的初始化动作");
}
}
class SuperDemo
{
public static void main(String[] args)
{
Bird b1 = new Bird();
System.out.println("========================================================");
Bird b2 = new Bird("小鸟");
System.out.println("========================================================");
Bird b3 = new Bird("小鸟",17);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2