补充习题
1、显式使用this调用当前对象的成员变量和方法。
可不可以在子类用this调用父类的方法或者变量:和super的效果完全相同,目前知道的区别是super.方法调用的是父类被重写的原本的方法。其他的区别还不知道
public class Bird
{
//成员变量
String name;
int age;
//不提供默认的构造器,看看子类能不能自己写一个出来
/**
* Bird的有参数构造器
*/
public Bird(String name,int age)
{
this.name = name;
this.age = age;
}
/**
* Bird的飞行方法
*/
public void fly()
{
System.out.println(name+"正在飞行");
}
}
class Dove extends Bird
{
private String color;
public Dove(String name ,int age,String color)
{
super(name,age);
this.color = color;
}
//重写父类的fly方法
public void fly()
{
System.out.println("重写了父类的飞翔方法");
}
public void show()
{
System.out.println("鸽子:"+super.name+
"\n年龄:"+super.age);
super.fly();
this.fly();
System.out.println("鸽子:"+this.name+
"\n年龄:"+this.age);
}
}
程序入口Main方法
public class Main
{
public static void main(String[] args)
{
//创造一只鸟
Bird bird = new Bird("我是鸟",300);
bird.fly();
//创造一只鸽子
Dove dove = new Dove("白鸽",255,"白色");
dove.show();
}
}