JavaSE-11.3.3【接口案例-猫和狗】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package day2.yubaby03.p3; /* 3.4 接口案例-猫和狗 */ public class AnimalDemo { public static void main(String[] args) { Jumpping j = new Cat(); j.jump(); Animal a = new Cat(); a.setName( "tom" ); a.setAge( 1 ); System.out.println(a.getName() + "," + a.getAge()); a.eat(); // a.jump(); //error ((Cat) a).jump(); //ok //or Cat c = (Cat)a; c.jump(); //ok a = new Cat( "sam" , 2 ); System.out.println(a.getName() + "," + a.getAge()); a.eat(); ((Cat) a).jump(); //从上述可以看出,通过接口得到的对象只能调用接口的成员方法,通过父类的只能调用父类的 //更常用的写法:(子类/实现类,既可以调用接口中的方法也可以调用父类中的) Cat cat = new Cat(); cat.setName( "it" ); cat.setAge( 3 ); System.out.println(cat.getName() + "," + cat.getAge()); cat.eat(); cat.jump(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package day2.yubaby03.p3; public abstract class Animal { private String name; private int age; public Animal() { } public Animal(String name, int age) { this .name = name; this .age = age; } public void setName(String name) { this .name = name; } public void setAge( int age) { this .age = age; } public String getName() { return name; } public int getAge() { return age; } public abstract void eat(); } |
1 2 3 4 5 6 7 8 9 10 11 | package day2.yubaby03.p3; public interface Jumpping { // public abstract void jump(); //或 void jump(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | package day2.yubaby03.p3; public class Cat extends Animal implements Jumpping{ public Cat() { } public Cat(String name, int age) { super (name, age); } @Override public void eat() { //重写自父类 System.out.println( "猫猫吃饭了" ); } @Override public void jump() { //重写自接口 System.out.println( "猫猫跳高了" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | package day2.yubaby03.p3; public class Dog extends Animal implements Jumpping{ public Dog() { } public Dog(String name, int age) { super (name, age); } @Override public void eat() { System.out.println( "狗狗吃饭了" ); } @Override public void jump() { System.out.println( "狗狗跳高了" ); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!