酷代码 AI
菜单
服务商

Java编程:接口、抽象类、多态及数组应用与开发注意要点

// 1)接口Lion与实现类LionClass interface Lion { // 获取狮子相关信息的方法 String get(); } class LionClass implements Lion { private String name; public LionClass(String name) { this.name = name; } @Override public String get() { return "This is a lion named " + name; } } // 2)抽象类Amphibian及子类Frog、Toad abstract class Amphibian { // 抽象方法:陆上爬行 public abstract void crawl(); // 抽象方法:水中游泳 public abstract void swim(); } class Frog extends Amphibian { private String name; public Frog(String name) { this.name = name; } @Override public void crawl() { System.out.println(name + " is crawling on land."); } @Override public void swim() { System.out.println(name + " is swimming in water."); } // 特有方法:跳跃 public void jump() { System.out.println(name + " jumps quickly!"); } } class Toad extends Amphibian { private String name; public Toad(String name) { this.name = name; } @Override public void crawl() { System.out.println(name + " is slowly crawling."); } @Override public void swim() { System.out.println(name + " is floating and swimming."); } // 特有方法:夜间活动 public void nocturnal() { System.out.println(name + " becomes active at night."); } } // 测试类 public class AnimalTest { public static void main(String[] args) { // 创建Frog和Toad对象,并向上转型为Amphibian Amphibian frog = new Frog("Kermit"); Amphibian toad = new Toad("Toadie"); // 调用父类声明的抽象方法,实际执行子类实现 frog.crawl(); frog.swim(); toad.crawl(); toad.swim(); // 向下转型以调用特有方法 ((Frog) frog).jump(); ((Toad) toad).nocturnal(); // 3)创建存储Amphibian类型元素的数组 Amphibian[] amphibians = new Amphibian[4]; amphibians[0] = new Frog("Green Frog"); amphibians[1] = new Toad("Brown Toad"); amphibians[2] = new Frog("Jumping Joe"); amphibians[3] = new Toad("Night Crawler"); // 遍历数组并调用每个对象的crawl()和swim()方法 for (Amphibian a : amphibians) { a.crawl(); a.swim(); } // 示例:使用Lion接口 Lion lion = new LionClass("Simba"); System.out.println(lion.get()); } } 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - 父类引用指向子类对象时,无法直接调用子类特有的非重写方法,必须进行类型转换。 - 数组大小需提前确定,若需动态扩容应考虑使用ArrayList等集合类替代。 - 向下转型存在风险,应确保对象真实类型匹配,否则会抛出ClassCastException。 ######[AI写代码神器 | 746点数解答 | 2025-11-14 15:01:19]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]