1·定义一个父类“Animal”,包含public成员属性“名字”、“年龄”与方法“showProfile()”。方法“showProfile()”,把对象的所有属性信息组合成一个字符串。接着,定义其子类“Cat”并包含一个成员方法“sleep()”,模拟睡觉行为。编程创建“Cat”类的对象,为该对象的“名字”、“年龄”属性赋值,并调用父类中定义的方法“showProfile()”与子类中定义的方法“sleep()”
2· 在上题的基础上,定义一个“Animal”的子类“Dog”,包含成员方法“run()” ,模拟奔跑行为。编程分别创建一个“Cat”类的对象和一个“Dog”类的对象并分别为两个对象的属性赋值,分别调用它们的“showProfile()”方法,然后调用各对象特有的方法“sleep()”和“run()”
3· 在上题的基础上为“Animal”类增加成员方法“speak()”,模拟发声行为,并在子类“Cat”与“Dog”中分别覆盖重写该方法,编程创建两个子类的对象并调用“showProfile()”及“speak()”方法
4· 在上题的基础上编程创建一个长度为4的“Animal”类的数组,并创建该数组中的偶数元素为“Cat”类的对象,奇数元素为“Dog”类的对象,调用数组中所有对象的“speak()”方法
3条回答 默认 最新
- CSDN专家-sinJack 2022-11-10 06:09关注
这种题网上都有的,很经典的继承案例。
public class AnimalTest { public static void main(String[] args) { Cat cat=new Cat("小猫",2); System.out.println(cat.showProfile()); cat.sleep(); Dog dog=new Dog("小狗",3); System.out.println(dog.showProfile()); dog.run(); System.out.println(""); Animal [] animals={new Dog(),new Cat(),new Dog(),new Cat()}; for(Animal a:animals){ a.speak(); } } } class Animal{ public String name; public int age; public String showProfile(){ return "name:"+name+",age="+age; } public void speak(){} } class Cat extends Animal{ public Cat(){ } public Cat(String name, int age) { this.name=name; this.age=age; } public void sleep(){ System.out.println("cat有睡觉行为。。。"); } @Override public void speak() { System.out.println("cat有speak行为。。。"); } } class Dog extends Animal{ public Dog(){ } public Dog(String name, int age) { this.name=name; this.age=age; } public void run(){ System.out.println("dog有奔跑行为。。。"); } @Override public void speak() { System.out.println("dog有speak行为。。。"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何解除Uniaccess管控
- ¥15 微信小程序跳转关联公众号
- ¥15 Java AES 算法 加密采用24位向量报错如何处理?
- ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
- ¥45 字符串操作——数组越界问题
- ¥15 Loss下降到0.08时不在下降调整学习率也没用
- ¥15 QT+FFmpeg使用GPU加速解码
- ¥15 为什么投影机用酷喵播放电影放一段时间就播放不下去了?提示发生未知故障,有什么解决办法吗?
- ¥15 来个会搭建付费网站的有偿
- ¥100 有能够实现人机模式的c/c++代码,有图片背景等,能够直接进行游戏