dog 类
public class dog extends animal {//狗类对象
public dog() {
}
public dog(int age,String color) {//父类中包含get和set方法可以直接调用
super(color,age);//引用父类的构造方法
}
public void eat(String something) {//狗类的eat方法
System.out.println(getAge()+"岁的"+getColor()+"颜色的狗两只前腿死死地抱住"+something+"猛吃");
}
public void lookhome() {//狗类的看家方法
System.out.println("狗在看家");
}
}
cat类
public class cat extends animal{//猫类对象
public cat() {
}
public cat(String color,int age) {//父类中已经包含get和set方法可直接覆盖
super(color,age);//引用父类的构造方法
}
public void eat(String something) {//猫类的eat方法
System.out.println(getAge()+"岁的"+getColor()+"颜色的猫眯着眼睛侧着头吃"+something);
}
public void zhua() {//猫类的抓老鼠方法
System.out.println("猫抓老鼠");
}
}
person 类
public class person{//饲养员类
String name;
int age;
public person() {
}
public person(String name,int age) {
this.age=age;
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void keeppet(dog dog,String something) {//狗类的方法,将dog类作为参数实现语句的输出,并可以直接调用dog类中的属性
System.out.println("年龄为"+age+"岁的"+name+"养了一只"+dog.getColor()+"颜色的"+dog.getAge()+"岁的狗");
dog.eat(something);//调用狗类的eat方法实现语句的输出
}
public void keeppet(cat cat,String something) {//猫类的方法,将cat类作为参数实现输出语句,并可以直接调用cat类中的属性
System.out.println("年龄为"+age+"岁的"+name+"养了一只"+cat.getColor()+"颜色的"+cat.getAge()+"岁的猫");
cat.eat(something);//调用猫类的eat方法实现语句的输出
}
}
animal 类
public class animal {
private String color;
private int age;
public animal() {
}
public animal(String color,int age) {
this.age=age;
this.color=color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(String something) {
System.out.println("动物在吃"+something);
}
}
test类
public class Test1 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
person p=new person();//创建主人类的对象
p.age=30;//给属性赋值
p.name="老王";
dog d=new dog();//创建狗类的对象,并给set()方法赋值
d.setAge(2);
d.setColor("黑色的");
p.keeppet(d, "骨头");//调用主人类的keeppet方法并给something赋值“骨头”
person pp=new person();//创建猫的主人对象
pp.age=18;//猫的主人属性赋值
pp.name="老李";
cat c=new cat();//创建猫的对象
c.setAge(5);//给猫的set()方法赋值
c.setColor("棕色的");
pp.keeppet(c, "小鱼干");//调用主人类的keeppet方法并给something赋值“小鱼干”
animal ad=new dog();//使用多态进行对象的方法调用//年龄的属性还是调用的左边animal属性,无法调用person中的方法
ad.setAge(10);
ad.setColor("火红色");
// pp.keeppet(ad, "gutou");//调用person的喂食方法,将会报错
ad.eat("骨头");//调用狗的进食方法
}
}