动物类:姓名,年龄,吃饭,睡觉。
动物培训接口:跳高
猫继承动物类
狗继承动物类
部分猫继承猫类并实现跳高接口
部分狗继承狗类并实现跳高接口
代码展示:
Animal.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:51
*/
public abstract class Animal {
private String name;
private int age;
public abstract void eat();
public abstract void sleep();
public Animal() {
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Cat.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:53
*/
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("吃饭");
}
@Override
public void sleep() {
System.out.println("睡觉");
}
public Cat(String name, int age) {
super(name,age);
}
}
Dog.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:53
*/
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("吃饭");
}
@Override
public void sleep() {
System.out.println("睡觉");
}
public Dog(String name, int age) {
super(name,age); //调用父类有参构造方法
}
}
ErhaDog.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:57
*/
public class ErhaDog extends Dog implements JumpInterface{
@Override
public void eat() {
System.out.println(this.getName()+"今年"+this.getAge()+"喜欢吃狗粮");
}
@Override
public void sleep() {
System.out.println("二哈喜欢睡在地上");
}
public ErhaDog(String name,int age){
super(name,age); //调用父类有参构造方法
}
public void door(){
System.out.println(this.getName()+"在看门");
}
@Override
public void jump() {
System.out.println("狗没学会跳高");
}
}
Tomcat.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:56
*/
public class Tomcat extends Cat implements JumpInterface{
@Override
public void eat() {
System.out.println(this.getName()+"今年"+this.getAge()+"tom喜欢吃鱼");
}
@Override
public void sleep() {
System.out.println(this.getName()+"喜欢睡在沙发上");
}
public Tomcat (String name,int age){
super(name,age); //调用父类有参构造方法
}
public void mouse(){
System.out.println(this.getName()+"抓老鼠");
}
@Override
public void jump() {
System.out.println(this.getName()+"学会了跳高");
}
}
JumpInterface.interface
public interface JumpInterface {
void jump();
}
Test.java
package demo09;
/**
* @Author:liger
* @Description:爱学Java
* @Time:2021-11-04 16:50
*/
public class Test { //定义测试类
public static void main(String[] args) {
Cat c=new Tomcat("tom",10);// 使用有参构造方法
c.eat();
c.sleep();
Tomcat tomcat= (Tomcat) c; //向下转型
tomcat.mouse();
tomcat.jump();
Dog d=new ErhaDog("二哈",20);//使用有参构造方法
d.eat();
d.sleep();
ErhaDog e= (ErhaDog) d; //向下转型
e.door();
e.jump();
}
}