每日学习-Java基础(十)接口和继承12(综合练习)

一、UML

在这里插入图片描述

  1. 解说
package ia12_ce;

// comprehensive exercises 综合练习
public class Info {

}
// UML Unified Module Language 统一建模语言
// 类和类之间的关系
// 类的属性、方法
// 继承关系
// 实现关系

// 斜体 抽象类Animal、抽象方法 eat
// 类名、接口名加粗 Animal、Pet、Spider、Cat、Fish
// 《interface》 接口
// 下划线 构造方法
// #    protected
// +    public
// 三角形实线箭头-继承
// 三角形虚线箭头-实现

二、练习

  1. Animal
    Animal为抽象类,可以定义抽象方法和具体方法。
package ia12_ce;

public abstract class Animal {
	protected int legs;

	protected Animal(int legs) {
		this.legs = legs;
	}

	public abstract void eat();

	public void walk() {
		System.out.printf("用" + "%d" + "条腿走路!", legs);
	}
}
// 构造方法
// 抽象类,抽象方法
// 抽象类,实体方法
  1. Spider
    Spider继承Animal。
package ia12_ce;

public class Spider extends Animal {

	// 默认构造器,调用父类构造器,super,首行
	protected Spider() {
		super(8); // 蜘蛛有8条腿
		// TODO Auto-generated constructor stub
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("吃蚊子");
	}

}
  1. Pet
    Pet接口。接口中的方法都没有实现,需要实现该接口的类实现。
package ia12_ce;

public interface Pet {
	public void setName(String name);
	public String getName();
	public void play();
}
  1. Cat
    继承Animal类,实现Pet接口。
package ia12_ce;

public class Cat extends Animal implements Pet{
	private String name;
	
	public Cat(String name) {
		super(4);
		this.name = name;
	}
	
	public Cat() {
		this("");
	}
	
	public String getName() {
		return this.name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public void play() {
		System.out.println("猫爱玩稀奇古怪的东西");
	}
	
	public void eat() {
		System.out.println("吃老鼠");
	}
}
  1. Fish
    继承Animal类,实现Pet接口。
package ia12_ce;

public class Fish extends Animal implements Pet{
	private String name;
	
	protected Fish() {
		super(0); // 鱼没有腿
	}
	
	public void walk() {
		System.out.println("鱼能游,但不能走");
	}
	
	@Override
	public void setName(String name) {
		// TODO Auto-generated method stub
		this.name = name;
	}

	@Override
	public String getName() {
		// TODO Auto-generated method stub
		return this.name;
	}

	@Override
	public void play() {
		// TODO Auto-generated method stub
		System.out.println("鱼玩泡泡");
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("鱼吃浮游生物");
	}

}

我的学习源泉:https://how2j.cn/k/interface-inheritance/interface-inheritance-practise/679.html?p=114999
Java自学网站:https://how2j.cn?p=114999

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值