每日学习-Java基础(十)接口和继承12(综合练习)
程序员文章站
2022-05-22 11:33:02
...
一、UML
- 图
- 解说
package ia12_ce;
// comprehensive exercises 综合练习
public class Info {
}
// UML Unified Module Language 统一建模语言
// 类和类之间的关系
// 类的属性、方法
// 继承关系
// 实现关系
// 斜体 抽象类Animal、抽象方法 eat
// 类名、接口名加粗 Animal、Pet、Spider、Cat、Fish
// 《interface》 接口
// 下划线 构造方法
// # protected
// + public
// 三角形实线箭头-继承
// 三角形虚线箭头-实现
二、练习
- 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);
}
}
// 构造方法
// 抽象类,抽象方法
// 抽象类,实体方法
- 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("吃蚊子");
}
}
- Pet
Pet接口。接口中的方法都没有实现,需要实现该接口的类实现。
package ia12_ce;
public interface Pet {
public void setName(String name);
public String getName();
public void play();
}
- 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("吃老鼠");
}
}
- 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