package test05;
import test06.Car1;
public class DuoTai_Test02 {
/**多个对象,一个形态
* Tiger、Lion、Snake → Animal
*、多个对象,一种形态(类型)。
* 不同对象,表现出同一种形态之后。
* 可以实现同样的功能。
*
* 此方式,需要多个子类对应一个父类。
* 往往是采用(多个)子类继承父类来实现。
*
* @param args
*/
public static void main(String[] args) {
Animal animal=new Cat(); ///抽象引用指向子类对象
animal.eat();
animal.sheep();
Animal animal2=new Dog();
animal2.eat();
animal2.sheep();
Animal animal3=new Snack();
animal3.eat();
animal3.sheep();
DuoTai_Test02 dt=new DuoTai_Test02();
dt.test(new Cat());
dt.test(new Dog());
dt.test(new Snack());
}
public void test(Animal animals){
animals.eat();
animals.sheep();
}
}
abstract class Animal{/////抽象类
String name;
int age;
public abstract void eat();///抽象方法
public abstract void sheep();////抽象方法
}
class Cat extends Animal {
public void eat(){ ////重写
System.out.println("猫吃");
}
public void sheep(){ ////重写
System.out.println("猫睡觉");
}
}
class Dog extends Animal{
public void eat(){ ////重写
System.out.println("狗吃");
}
public void sheep(){ ////重写
System.out.println("狗睡觉");
}
}
class Snack extends Animal{
public void eat(){ ////重写
System.out.println("蛇吃");
}
public void sheep(){ ////重写
System.out.println("蛇睡觉");
}
}
Java之多态(二)的更多相关文章
-
Java基础十二--多态是成员的特点
Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...
-
个人对Java中多态的一些简单理解
什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...
-
Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
-
Java中多态的一些简单理解
什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...
-
Java实验报告二:Java面向对象程序设计
Java实验报告二:Java面向对象程序设计 ...
-
从虚拟机指令执行的角度分析JAVA中多态的实现原理
从虚拟机指令执行的角度分析JAVA中多态的实现原理 前几天突然被一个"家伙"问了几个问题,其中一个是:JAVA中的多态的实现原理是什么? 我一想,这肯定不是从语法的角度来阐释多态吧 ...
-
20145203盖泽双:Java实验报告二
Java实验报告二:Java面向对象程序设计 实验要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容 ...
-
Java 之多态
Java 之多态(包含封装) 基础知识: Java 在处理基本数据类型(例如int ,char,double)时,都是采用按值传递的方式执行,除此之外的其它类型都是按引用传递的方式执行.对象除了在函数 ...
-
java的多态以及重载,重写,前期绑定,后期绑定
多态的定义: 一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同内部结构的对象可以共享相同的外部接口.这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通 ...
-
关于java中多态的理解
java三大特性:封装,继承,多态. 多态是java的非常重要的一个特性: 那么问题来了:什么是多态呢? 定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行 ...
随机推荐
-
Linux网络编程-----Socket地址API
(1) 通用socket地址 socket网络编程接口中表示socket地址的是结构体sockaddr,其定义如下: #include<bits/socket.h> struct sock ...
-
Ado.net 类扩展属性
.要扩展的类名字一样,2个类加(partial) 小例子: using System; using System.Collections.Generic; using System.Linq; usi ...
-
Tesseract pytesseract的安装和使用
Tesseract是开源的OCR引擎,可以识别的图片里的文字,支持unicode(UTF-8)编码,100多种语言,需要下载相应语言的训练数据. 安装: 有两种方法,一种是通过编译源码,比较麻烦.我使 ...
-
unity插件开发——Selection
Selection是一个静态类,它的主要功能是获取在project窗口中鼠标选择的对象或者是inspector窗口的当前显示的对象.它的字段有 activeGameObject activeInsta ...
-
【转】jenkins+gitlab配置遇到问题
搭建jenkins+gitlab拉取代码失败,日志如下: ERROR: Error fetching remote repo 'origin'hudson.plugins.git.GitExcepti ...
-
论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
-
requirejs整合ztree
{block name='script'} <script> require(['jquery.ztree'], function () { var zTreeObj; var setti ...
-
datatime 模块
import datetime # 这个是一个包 里面包含 对时间的处理 对日期的处理datetime.date # 日期相关datetime.time # 时间相关 # 获取当前详细时间print( ...
-
openresty + lua 2、openresty 连接 redis,实现 crud
redis 的话,openresty 已经集成,ng 的话,自己引入即可. github 地址:https://github.com/openresty/lua-resty-redis github ...
-
SQL之mysql常用操作语句(入门级)
1.进入数据库: mysql -u root -p mysql -h localhost -u root -p database_name 2.列出数据库 show databases; 3.选择数据 ...