Java面向对象之多态
多态:具有表现多种形态的能力的特征(同一个实现接口,使用不同的实例而执行不同的操作)
实现多态的优点:为了方便统一调用!
实现多态的三种方式!
1:子类到父类的转换:
例:
Dog dog=new Dog("欧欧","雪纳瑞");
dog.eat();
Pet pet=new Dog("欧欧","雪纳瑞");//子类到父类的转换
pet.eat();
pet.catchingFlyDisc();//编译错误,父类的引用无法调用子类的特殊方法
规则:
1:将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换
2:此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法.
3:此时通过父类引用变量无法调用子类特有的方法!
2:使用父类作为方法形参实现多态
public class Master
{
private String name="";
private int money=;
public Master(String name,int money)
{
this.name=name;
this.money=money;
}
public void feed(Pet pet)
{
pet.eat();
}
public void feed(Dog dog)
{
dog.eat();
}
public void feed(Penguin pen)
{
pen.eat();
}
public class Test()
{
public static void main(String[] args)
{
Master master =new Master("王先生",);
Pet pet=new Dog("欧欧","雪纳瑞");
master.feed(pet);
} }
3:使用父类作为方法返回值实现多态
public class Master{
private String name="";
private int money=;
public Pet getPet(int id)
{
Pet pet=null;
if(id==)
{
pet=new Dog("欧欧","雪纳瑞")
}
else if(id==)
{
pet=new Penguin("娜娜","帝企鹅");
}
return pet;
}
}
注意:
1:继承的存在(继承是多态的基础,没有继承就没有多态)
2:子类重写父类的方法
3:父类引用变量指向子类对象
Java面向对象之多态的更多相关文章
- Java面向对象之多态(来源于身边的案例)
2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...
- Java面向对象的多态
Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可 ...
- java面向对象之 多态 Polymorphism
多态(Polymorphism):用我们通俗易懂的话来说就是子类就是父类(猫是动物,学生也是人),因此多态的意思就是:父类型的引用可以指向子类的对象. 1.多态的含义:一种类型,呈现出多种状态 主要讨 ...
- Java面向对象特性--多态
Java是一种面向对象的编程语言,面向对象的三大特性就是继承,封装,多态.下面细细说一说多态. 多态的定义:一个事物的多种形态,指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而 ...
- JavaSE入门学习18:Java面向对象之多态
一Java多态 多态是同一个行为具有多个不同表现形式或形态的能力. 多态性是对象多种表现形式的体现.比方我们说"宠 物"这个对象.它就有非常多不同的表达或实现,比方有小猫.小狗.蜥 ...
- Java 面向对象_多态
多态图解 代码中体现多态性 父类名称 对象名 = new 子类名称(); or 接口名称 对象名 = new 实现类名称(); // 父类 public class Father { public v ...
- 对Java面向对象中多态的理解
理解的要点:多态意味着父亲的变量可以指向子类对象 面向对象程序设计的三大支柱是封装.继承和多态 封装对外把相应的属性和方法实现的细节进行了隐藏.继承关系使一个子类继承父亲的特征,并且加上了一些新的特征 ...
- Java面向对象11——多态
多态 package oop.demon01.demon06; public class Application { public static void main(String[] a ...
- Java面向对象:多态
多态:具有表现多种形态的能力的特征(同一个实现接口,使用不同的实例而执行不同的操作) 实现多态的优点:为了方便统一调用! 实现多态的三种方式! 1:子类到父类的转换: 例: 1 Dog dog=new ...
随机推荐
- SharePoint Online 创建门户网站系列之首页布局
前 言 SharePoint Online中创建首页布局,一般都是首先将美工提供的效果图,切图成为Html + Css + Script的形式,然后,将所有资源文件传到SharePoint Onlin ...
- SharePoint 2013 通过审计获取文档下载次数
1.创建一个文档库,进入库设置,找到”Information management policy settings”,点进去,如下图: 2.分别设置”Document”.”Folder”两个,如下图: ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- Eclipse的自动排版设置(format)
Java排版: 主要是在文件保存时自动触发排版等规则,省掉反复操作快捷键 Ctrl+Shift+F 的步骤.在 eclipse 中选择 Window-> Preferences- ...
- iOS cookie问题
获取cookie时汉字应转换为UTF8格式
- 在SQL2008中使用XML应对不确定结构的参数
目的:统一接口,当数据结构发生变化时,前后端业务接口不发生变化,由业务具体解析结构. 规则:确定的接口用参数表(多行提交),不确定的参数用XML DECLARE @r TABLE ( ...
- C#中方法的参数的四种类型
C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. 输出型参数 (以out 修 ...
- 理解并自定义HttpHandler
前言 之前从网上找了几篇讲解如何自定义HttpHandler的文章,依葫芦画瓢却一直没成功过.经过上一篇<asp.net管道模型(管线模型)之一发不可收拾>的总结,对管道模型和请求/响应过 ...
- WPF学习之路(十一)布局
布局 Canvas 基本面板,传统布局方式,支持与设备无关的坐标定位元素 <Border BorderThickness="> <Canvas> <Button ...
- Azure Blob
Blob的概念: Blob是一种为存储二进制数据提供的存储机制,每个Storage Account可以有多个Container,Container中可以存放二进制文件 可以通过REST API来访问, ...