Java 面向对象 之 多态实例 孩子吃水果
http://www.verejava.com/?id=16992843565554
/**
题目: 孩子吃(苹果,葡萄,芒果)
思路:
1. 抽象出类 : 孩子(Baby), 苹果(Apple),葡萄(Grape)
2. 找出类的关系: 苹果,葡萄 -> 孩子
3. 找出属性: 孩子(姓名,苹果引用,葡萄引用) 苹果(名称) 葡萄(名称)
4. 找出方法: 孩子吃(eat)苹果或者葡萄
*/
public class Polymorphism2 {
public static void main(String[] args) {
//实例化一个Baby
Baby baby = new Baby("李明");
//实例化一个苹果 和 一个葡萄
Apple apple = new Apple("红富士");
Grape grape = new Grape("黑葡萄");
Mango mango = new Mango("大芒果");
//李明吃苹果和葡萄
baby.eat(apple);
System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getApple().getName());
baby.eat(grape);
System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getGrape().getName());
baby.eat(mango);
System.out.println(baby.getName() + " 高兴的说我吃了 " + baby.getMango().getName());
}
}
class Baby {
private Apple apple;
private Grape grape;
private Mango mango;
private String name;
public Baby(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public Apple getApple() {
return this.apple;
}
public Grape getGrape() {
return this.grape;
}
public Mango getMango() {
return this.mango;
}
//吃苹果
public void eat(Apple apple) {
this.apple = apple;
}
//吃葡萄
public void eat(Grape grape) {
this.grape = grape;
}
//吃芒果
public void eat(Mango mango) {
this.mango = mango;
}
}
class Apple {
private String name;
public Apple(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
class Grape {
private String name;
public Grape(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
class Mango {
private String name;
public Mango(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
SQL Serever学习9——基础查询语句
SQL语言概述 SQL是结构化查询语言(Structure Query Language),1974年提出,1979年被IBM实现,SQL语言已经成为关系型数据库的标准语言。 包括: DDL数据定义语言 语句有CREATE ,ALTER ,DROP,操作表,视图,触发器,存储过程 DML数据操作语言 语句有SELECT ,INSERT , UPDATE , DELETE,用于检索和操作数据 DCL数据控制语言 语句有GRANT , DENY , REVOKE,只有sysadmin,数据库创建者,拥有者,安全管理员有权利执行,用来设置或更改数据库用户或角色权限 流程控制 常用语句有BEGIN...END , IF...ELSE , WHILE , BREAK , GOTO , WAITFOR , RETURN等语 逻辑运算符 AND OR NOT ALL,所有表达式为true才为true ANY,表达式中一个为true则为true BETWEEN ,在某个范围内则为true EXISTS IN ,操作数为表达式列表中的一个则为true。 语句基本格式 SELECT * FROM 表名 W...
-
下一篇
Java 面向对象 之 多态实例2
http://www.verejava.com/?id=16992846385655 /** 题目: 孩子吃 水果(苹果,葡萄,芒果,菠萝) 思路: 1. 抽象出类 : 孩子(Baby), 水果(Fruit)(苹果(Apple),葡萄(Grape),芒果(Mango)) 2. 找出类的关系: 水果 -> 孩子 (苹果,葡萄,芒果) 是 水果的分类 3. 找出属性: 孩子(姓名,水果引用) 4. 找出方法: 孩子吃(eat)水果 子类->父类的转换 作用 :解耦 也就是降低类与类之间的耦合度 提供可扩展性 */ public class Polymorphism3 { public static void main(String[] args) { //实例化一个Baby Baby baby = new Baby("李明"); //实例化一个苹果 和 一个葡萄 Apple apple = new Apple("红富士"); Grape grape = new Grape("黑葡萄"); Mango mango = new Mango("大芒果"); PineApple pin...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19