- package test;
- public class Test1
- {
- public static void main(String [] args)
- {
- Dog dog=new Dog("黑子");
- dog.shout();
- dog.sleep();
- System.out.println(dog.sleepTime);
-
- Cat cat=new Cat("花花");
- cat.shout();
- cat.sleep();//为什么这里显示的是【小猫-花花一般是白天-->睡觉】 怎么做可以显示【小猫-花花晚上-->睡觉】
- //子类Cat从Animal中继承了sleep方法,但是子类对象调用sleep方法的时候,为什么不能显示已被子类覆盖之后的值呢?
- System.out.println(cat.sleepTime);//这里显示“白天”,说明子类中的sleepTime的值覆盖了父类中的sleepTime
-
-
- }
- }
- /**
- *
- * Named接口说明实现该接口的类是可命名的,必须实现其中的方法public String getName(),通过该方法返回实现该接口的类的名字。
- *
- */
- interface Named
- {
- public String getName();
- }
- abstract class Animal implements Named
- {
- public String sleepTime="一般是白天";//定义静态变量 即动物的睡觉时间,在子类中可以被覆盖。
- abstract void shout();
- public void sleep()
- {
- System.out.println(getName()+sleepTime+"-->睡觉");
- }
- public String getName()
- {
- return "动物";
- }
- }
- class Dog extends Animal
- {
- private String name;
- public String sleepTime="白天";
-
- Dog(String name)
- {
- this.name=name;
- }
-
- public void shout()
- {
- System.out.println(getName()+":汪汪~~~");
- }
-
- public String getName()
- {
- return ("小狗-"+name);
- }
-
- }
- class Cat extends Animal
- {
- private String name;
- public String sleepTime="晚上";
- Cat(String name)
- {
- this.name=name;
- }
-
- public void shout()
- {
- System.out.println(getName()+":喵喵~~~");
- }
-
- public String getName()
- {
- return ("小猫-"+name);
- }
-
- }
复制代码 |