欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-22 11:33:02
...

一、UML

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

  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