面向对象继承以及多态练习

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("骨头");//调用狗的进食方法
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为爱冲锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值