public class Doubt {

public static void main(String[] args) {

Dog d1=new Dog();

Dog d2=new Zangao();

Dog d3=new Hasiq();

Master m=new Master();

m.feed(d1,d2,d3);

}

}

class Master {

void feed(Dog ... d1) {

for(Dog d:d1) {

d.eat();

if(d instanceof Zangao) {

Zangao z=(Zangao)d;

z.fight();

System.out.println("是藏獒");

}

if(d instanceof Hasiq) {

Hasiq h=(Hasiq)d;

h.play();

System.out.println("是哈士奇");

}

}

}

}

class Dog {

void eat() {

System.out.println("狗吃东西");

}

}

class Zangao extends Dog{

void eat() {

System.out.println("藏獒吃东西");

}

void fight() {

System.out.println("我是藏獒,我爱战斗");

}

}

class Hasiq extends Dog{

void eat() {

System.out.println("哈士奇吃东西");

}

void play() {

System.out.println("我是哈士奇,我爱玩耍");

}

}

instance与可变参数合用,多态性的更多相关文章

  1. C语言中可变参数的用法

    原文地址: http://blog.csdn.net/wooin/archive/2006/04/29/697106.aspx   我们在C语言编程中会遇到一些参数个数可变的函数,例如printf() ...

  2. JAVA提高一:静态导入、可变参数、增强型for循环、装拆箱

    国庆假期已结束,假期8天,全部在家带娃,体会到了妻子的不容易,需要好好努力来多赚钱了,言归正传.10月份开始进去JAVA 高级语法知识学习,本节复习学习的为:静态导入.可变参数.增强型for循环.装拆 ...

  3. PHP可变参数

    0x00 缘起 在laravel的源码里经常可以看到下面的函数形式 $func(...$args) 0x01 可变参数旧写法 这表示$func支持可变参数,在php5.6之前则是在函数体内调用 fun ...

  4. C/C++中带可变参数的函数

    1.带可变参数的函数由来 当函数中的参数个数不确定时,这时候就需要带可变参数的函数! 如我们经常使用的C库函数printf()实际就是一个可变参数的函数, 其原型为: int printf( cons ...

  5. C++可变参数列表处理宏va_list、va_start、va_end的使用

      VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef     _M_ALPHA typedef    struct{ char* a0; /* ...

  6. 【转】C++可变参数列表处理宏va_list、va_start、va_end的使用

    VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef     _M_ALPHA typedef    struct{ char* a0; /*po ...

  7. #include<stdarg.h> 可变参数使用

    今天上计算方法这课时觉得无聊至极,于是拿出C++编程之道来看了看..无意之中看到了#include<stdarg.h> va_list,va_start,va_end等东西,不知是怎么用的 ...

  8. c 可变参数(variable argument)的原理及使用

    本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施. VA函数(variable argument function),参数个数可变函数 ...

  9. java成神之——ImmutableClass,null检查,字符编码,defaultLogger,可变参数,JavaScriptEngine,2D图,类单例,克隆,修饰符基本操作

    ImmutableClass null检查 字符编码 default logger 函数可变参数 Nashorn JavaScript engine 执行脚本文件 改变js文件输出流 全局变量 2D图 ...

随机推荐

  1. POJ1797 Heavy Transportation (堆优化的Dijkstra变形)

    Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand bus ...

  2. 【原】python3.6安装python-dev

    [root@ci /usr/lib64/python3.6]# yum -y install python36-devel

  3. 【原】mac电脑使用总结

    mac下终端配置(item2+oh-my-zsh)+solarized配色方案:https://www.cnblogs.com/weixuqin/p/7029177.html

  4. 助力企业战疫提效保质,腾讯wetest远程办公工具包请查收!

    导语 疫情当前,减少个人的出行与聚集成为了抗击疫情的重要防线.不少企业为了员工的安全与战疫的目标,开始实行在家远程办公的措施.作为开发测试人员,对工作环境与设备软件的条件要求相对较高,当前在远程办公的 ...

  5. 设计模式课程 设计模式精讲 3-11 合成复用原则coding

    1 课堂概念 1.0 继承关系的选择 1.1 起名 1.2 定义 1.3 组合聚合优缺点 1.4 继承优缺点 1.5 组合聚合区别 2 代码演练 2.1 反例 2.2 正例 3 疑问解答3.1 疑问解 ...

  6. 软件架构,WEB - MVC,MVP,MVVM

    参考 https://www.zhihu.com/question/20148405/answer/107071448 http://www.cnblogs.com/indream/p/3602348 ...

  7. C++代码如何附加到C#写的主程序中?

    背景是这样:C#的exe程序,C#中调用C++的dll,也就是所谓的托管吧. C#的exe出了点问题,想在C++的dll的源码中调试,附加到进程时,加了断点,怎么也跟不进去.断点不变红啊,急死了. 最 ...

  8. github日常的基本命令

    git 常用命令 git clone 仓库地址 -从远端克隆项目 git pull -从远端拉取代码 git pull -p -从远端拉取代码和分支 提交代码流程: git add xxx -添加到暂 ...

  9. 九 三种Struts2访问Servlet方式总结

    Servlet是单例的,Action是多例的. 多个程序访问Servlet只会创建一个Servlet对象,多个程序访问Action会创建对应的多个Action对象. 跳转页面可以获取对象的属性,说明使 ...

  10. Can you answer these queries?-HDU4027 区间开方

    题意: 给你n个数,两个操作,0为区间开方,1为区间求和 链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 思路: 如果当该区间的数都为1,我们没必要 ...