您的位置:首页 > 编程语言 > Java开发

Java语言基础之super关键字

2015-10-23 11:06 477 查看
This 调用当前对象的属性,方法

Super 调用父类的构造器,属性,方法

This() super() 必须出现在构造方法的第一行

子类 dog:

package com;

public class Dog extends Animal{

// super 表示调用父类的方法,属性,以及构造函数
public Dog()
{
super("Dog"); // 直接调用父类有参构造器赋初始值
System.out.println("Dog 无参数构造器");
}
@Override
public void howl()
{
System.out.println(this.name+".... wangwang");
super.show(); // super 表示调用父类的show方法
}



父类animal:
package com;
// 父类这里是抽象类(abstract) 不能直接new 对象 需要具体的子类赋值
public abstract class Animal {
public String name;

public Animal()
{
this("Animal");
System.out.println("Animal 无参构造器");
}
public Animal(String name)
{
this.name=name;
System.out.println("Animal 有参构造器");

}
public void walk()
{
System.out.println(this.name+"...walk");
}
public void sleep()
{
System.out.println(this.name+"...sleep");
}
public void show()
{
System.out.println("Animal father.."+"show");
}

public abstract void howl();
}


main:
package com;

public class main {

/**
* @param args
*/
public static void main(String[] args) {

// 子类对象赋值给父类变量
//Animal animal = new Cat();
//animal.name="Cat";
//animal.walk();
// howl() 方法在父类中是抽象方法(abstract),没有实际定义,只是声明而已。
// 在Cat类中实际定义howl()方法的实现。
// 在父类变量在实现调用时,指向的是子类对象,所以howl()方法是子类的方法。
// 最后输出的是Cat.... miaomiao 而不是Cat.... xxxxx
//animal.howl();

// getMsg(animal);

Animal animal1 = new Dog();
//animal1.name="Dog";
animal1.walk();
animal1.howl();
//getMsg(animal1);

}

public static void getMsg(Animal animal)
{
animal.howl();
}

}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: