返回本章节

返回作业目录


需求说明:

定义一个抽象类 Bird,创建使用匿名内部类的操作类Action。

实现思路:

定义抽象类Bird。在其中定义一个String类型的name属性,一个返回类型是int的抽象方法fly(),以及getName()方法

定义操作类Action,在其中定义一个op()方法,该方法的形参为Bird类型。

在main()方法中,实例化一个Action对象,并调用该对象的op()方法。op()方法的实参是一个继承了Bird抽象类的匿名内部类对象,该内部类重写了Bird类的getName()和fly()。

实现代码:

public abstract class Bird {
private String name; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract int fly();
} public class Action {
public void op(Bird bird){
System.out.println(bird.getName() + "能够飞 " + bird.fly() + "米");
}
public static void main(String[] args) {
Action action = new Action();
action.op(new Bird() {
public int fly() {
return 10000;
}
public String getName() {
return "大雁";
}
});
}
}

最新文章

  1. Python基础(二)
  2. 【从API学英语】-DriverManager
  3. git 教程(10)--添加远程库
  4. Java for LeetCode 234 Palindrome Linked List
  5. [转载] Calculating Entropy
  6. Android--数据持久化之内部存储、Sdcard存储
  7. Express中使用mongodb存储session
  8. C++类:private、public、friend、protected的区别
  9. OpenGL缓冲区
  10. poj1207 3n+1 problem
  11. python3 进行字符串、日期、时间、时间戳相关转换
  12. Node入门教程(6)第五章:node 模块化(上)模块化演进
  13. Oracle11g自带的SQL_developer无法打开
  14. LXC 容器集chroot使用说明
  15. 树莓派获取ip地址发送到邮箱
  16. Android手机端抓包方法
  17. Apache和Nginx的Rewrite规则对比
  18. [BUAA_SE_2017]结对项目-数独程序扩展
  19. 20135239益西拉姆 Linux内核分析 进程的描述和进程的创建
  20. 【Visual Studio】解决方案未保存,请先保存你的解决方案,然后再管理Nuget包

热门文章

  1. 自定义控件CustomAlertView
  2. Linux学习 - 正则表达式
  3. Linux学习 - ifconfig
  4. @Value("#{}")与@Value("${}")
  5. 统计网卡流量的两段shell脚本(使用ifconfig)
  6. maven 是什么?
  7. C/C++语言结构体指针的使用
  8. 云服务器ECS部署和卸载RabbitMQ
  9. Redis持久化 aof和rdb的原理配置
  10. 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)