Animal.java
package mainclass2;
class Animal{
protected String name;
public void showName(){
System.out.println(name);
}
public void cry(){
System.out.println("不同动物的叫声是有区别的");
}
}
Cat.java
package mainclass2;
class Cat extends Animal{//class 小写
Cat(){
name="猫";
}
Cat(String s){
name=s;
}
public void cry(){
System.out.println("喵喵喵");
}
public void climbUpTree(){
System.out.println(name+"会爬树");
}
}
Dog.java
package mainclass2;
class Dog extends Animal{//class 小写
Dog(){
name="狗";
}
Dog(String s){
name=s;
}
public void cry(){
System.out.println("汪汪汪");
}
public void swimming(){
System.out.println(name+"会游泳");
}
}
MainClass2.java
package mainclass2;//子类对于父类的继承要用到包
public class MainClass2 {
public static void main(String[] args) {
Dog dog=new Dog("小黄狗");
Cat cat=new Cat("小花猫");
dog.showName();
dog.cry();
dog.swimming();
cat.showName();
cat.cry();
cat.climbUpTree();
}
}
运行结果:
试验后的练习:
参考在主类中是否可以如下创建对象
Dog dog=new Dog();
Cat cat=new Cat();
运行结果:
可以
但是狗将替换小黄狗
因为如此创建将不能覆盖Dog.java 内定义的name