多态 static 表示静态 编译的时候只调用Animal类中的eat 不会调用其他类中的eat 不建议用static;

package cn.zmh.A;

//动物类
public class Animal {
   static void eat(){
       
   }
}

//猫类
 class Cat extends Animal {
   static void eat(){
        System.out.println("猫吃鱼");
    }
}
 
 //狗类
 class Dog extends Animal {
       static void eat(){
            System.out.println("狗吃骨头");
        }
    }

//人类   喂猫喂狗
 class Persosn extends Animal {
        void feedAnimal(Animal anim){

//打印运行的地址

//方法前面加上static 这时anim直接提示你变成Animal;
            anim.eat();
        }
    }
 
//测试类
 class TestAnimal {

public static void main(String[] args){
           //多态写法
           Animal d = new Dog();
           Animal c = new Cat();
            
            Persosn p = new Persosn();

//static 静态

// 调用的是Animal类   不会调用Dog类和Cat类的eat;

//子类的值d赋值给父类Animal
            Animal aimn = (Animal) d;
            p.feedAnimal(aimn);
            
            //子类的值c赋值给父类Animal
            Animal aimn1 = (Animal) c;
            p.feedAnimal(aimn1);
            
        }
    }

原文地址:https://www.cnblogs.com/zhangmenghui/p/10544867.html

时间: 2024-10-29 03:13:22

多态 static 表示静态 编译的时候只调用Animal类中的eat 不会调用其他类中的eat 不建议用static;的相关文章

(文档)Shader.Find (在编译时,只包含那些使用中的shader或位置在"Resources"文件夹中shader)

Shader.Find 查找 static function Find (name : string) : Shader Description描述 Finds a shader with the given name. 查找名为name的着色器. Shader.Find can be used to switch to another shader without having to keep a reference to the shader. name is the name you ca

QT5静态编译教程,主要针对vs2012(渡世白玉)

QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2012 dc版 , vs2012 with update1,qt-everywhere-opensource-src-5.0.2,perl和rupy都是在qt官方给的地址下的最新的X64的,python是2.7 X64的... 本文主要针对qt 5.X版本,qt4.X的依赖没那么多,可以酌情参考下,

busybox静态编译及动态编译实践

1. 简介 BusyBox 是一个集成了一百多个最常用linux命令和工具的软件.BusyBox 包含了一些简单的工具,例如ls.cat和echo等等,还包含了一些更大.更复杂的工具,例grep.find.mount以及telnet.有些人将 BusyBox 称为 Linux 工具里的瑞士军刀. 简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令.除此之外,提供了良好的编程框架,用户能够将自己的命令集成到busybox当中.在实际的使用过程中,busybox常常被用

Apache静态编译与动态编译详解

Apache拥有4层结构,从核心到外层的module.而外层的module可以用通过静态和动态两种方式与Apache共同工作.这也就引入下文的“动态”和“静态”两种编译安装方式: 静态编译: 编译的时候,所有的模块自己编译进 httpd 这个文件中 ,启动Apache的时候这些模块就已经加载进来了,可以直接来使用,而不用再 httpd.conf 中在 LoadModule 来加载,只要在 <ifmodule></ifmodule> 中来配置就可以了. 动态编译: 编译的时候,使用e

apache 静态编译和动态编译参考

apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[module]=shared这2个中的一个,那么所有的默认模块为静态.何谓静态? 其实就是编译的时候所有的模块自己编译进httpd 这个文件中,启动的时候这些模块就已经加载进来了,也就是可以使用了,通常:<ifmodule> </ifmodule> 来配置.所以大家看到的配置都是<

Qt for Windows:Qt 5.5 MinGW 静态编译版本制作带Mysql

看到网上很多人都在求Qt静态编译带Mysql,包括我自己在内也是google了N多资料才搞定,正所谓滴水之恩当涌泉相报,没有网上各位网友的帖子我至今还是懵懵懂懂,所以这里我就整理下,希望对大家有所帮助 使用环境:win10Pro  配置时关闭了杀软,包括win Defender 流程规划: 下载安装必须组件  qt5.5 perl python mysql  etc. 安装qt 5等组件Mysql库的转换 编译安装 配置 使用 安装 Qt5安装包 这里Mingw版本: 下载地址:http://d

交叉编译环境以及开发板上-/bin/sh: ./hello: not found(使用arm-linux-gcc -static -o 来进行静态编译)

目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的”Hello,World!”. 一. 主机编译环节 我使用的系统是ubuntu10.04,搭建好交叉编译环境后,终端输入arm-linux-gcc -v能够正常显示版本信息,但是输入sudo arm-linux-gcc -v后却显示命令无法找到. 我试过很多种方法,比如sudo -s切换到root后,编辑$PATH,将编译器路径加入.然后exit到普通用户.仍然不能执行sudo

静态编译Qt5.4.1和Qt WebKit

blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉得自己编译webkit费力不讨好,所以都是用的qt官方编译好的,至于静态编译webkit,我之前一直以为是根本不可能的.后来看qt forum上说其实是可以的,不过是因为开源协议的问题qt默认的静态编译只是把webkit给排除了,自己编译一下webkit就好了,既然如此,那我就当小白试一下.不

亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查