多态:具有表现多种形态的能力的特征(同一个实现接口,使用不同的实例而执行不同的操作)

实现多态的优点:为了方便统一调用!

实现多态的三种方式!

1:子类到父类的转换:

例:

1 Dog dog=new Dog("欧欧","雪纳瑞");
2 dog.eat();
3 Pet pet=new Dog("欧欧","雪纳瑞");//子类到父类的转换
4 pet.eat();
5 pet.catchingFlyDisc();//编译错误,父类的引用无法调用子类的特殊方法

规则:

1:将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换

2:此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法.

3:此时通过父类引用变量无法调用子类特有的方法!

2:使用父类作为方法形参实现多态

public class Master
{
private String name="";
private int money=0;
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("王先生",100);
Pet pet=new Dog("欧欧","雪纳瑞");
master.feed(pet);
}

}

3:使用父类作为方法返回值实现多态

public class Master{
private String name="";
private int money=0;
public Pet getPet(int id)
{
Pet pet=null;
if(id==1)
{
pet=new Dog("欧欧","雪纳瑞")
}
else if(id==2)
{
pet=new Penguin("娜娜","帝企鹅");
}
return pet;
}
}

注意:

1:继承的存在(继承是多态的基础,没有继承就没有多态)

2:子类重写父类的方法

3:父类引用变量指向子类对象

Java面向对象:多态的更多相关文章

  1. Java面向对象多态

    Java面向对象多态 7.2对象 7.2.1创建对象 对象是类的实例 类的名称 对象名称 = new 类的名称(); 7.3继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域 ...

  2. JAVA面向对象-多态的理解

    面向对象编程有三个特征,即封装.继承和多态. 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据. 继承是为了重用父类代码,同时为实现多态性作准备.那么什么是多 ...

  3. Java面向对象-------多态总结

    1.多态:是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现. 2.多态作用: 1. 消除类型之间的耦合关系 ...

  4. java 面向对象 — 多态

    注意:如果用父类引用指向子类对象的时候.不可以调用,子类中有但是父类中没有的方法. 抽象 方法没有具体方法,以分号结束.例:public abstract void call(); 1.接口必须要有a ...

  5. Java面向对象—多态

    概述:同一个事物,在不同的时刻表现出不同的状态. 代码中如何体现: 要有继承, 要有方法重写, 父类引用指向子类对象 多态的成员访问特点 成员变量:编译看左边(父类), 运行看左边 成员方法:编译看左 ...

  6. JAVA面向对象-----多态

    多态的概述 1:什么是多态 一个对象的多种状态 (老师)(员工)(儿子) 教师 a =老钟; 员工 b= 老钟; 2:多态体现 1:Father类 1:非静态成员变量x 2:静态成员变量y 3:非静态 ...

  7. Java面向对象----多态概念,对象上下转型

    概念:同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果 多态存在的三个必要条件 需要存在继承和实现关系 同样的 方法调用而执行不同操作,运行不同的代码(重写操作) 在运行时父类或者接口的 ...

  8. Java面向对象的多态

    Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可 ...

  9. JAVA 面向对象中的多态

    多态是继封装.继承之后,面向对象的第三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态. Java作为面向对象的语言,同样可以描述一个 ...

  10. 3.java面向对象编程三大特性之多态

    面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对类的外部而言它的内部实现细节是隐藏的,暴露给外界的只是它的实现方法. ...

随机推荐

  1. npm 安装 ionic cordova

    针对npm安装 ionic 和 cordova 过程很慢,且有些安装文件被墙的问题,使用如下方式解决: 1)安装cnpm npm install -g cnpm 2)然后再使用cnpm 安装 ioni ...

  2. Shapely中的几何图形操作

    Geometric Objects object.area Returns the area (float) of the object. object.bounds Returns a (minx, ...

  3. 将PostGIS转化为GeoJSON

    #!/usr/bin/env python # -*- coding: utf-8 -*- import psycopg2 import json from geojson import loads, ...

  4. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q69-Q71)

    Question 69 You are designing an extranet site using SharePoint 2010. This site must allow employees ...

  5. 如何用RadioButton做一个底部的切换栏

    上面的效果是用Radio进行制作的,一般我们做底部的切换栏的时候需要让按钮和文字都有一个选中的状态,然后根据点击不同的按钮触发不同的页面,这里的页面一般都是fragment做的.这里我们不讨论复杂的东 ...

  6. MySQL 常见的sql命令

    注意事项: 1.sql 使用单引号来环绕文本值(大部分数据库系统也接受双引号).如果是数值,请不要使用引号. 一.数据库 1.创建数据库 CREATE DATABASE lesson ; 创建一个名字 ...

  7. android am命令以及hotkey文件的编写

    1.拨打电话:am start -a android.intent.action.CALL -d tel:10086 这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型. 2. 打开一个网页 ...

  8. asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config

    从MVC4开始,我们就发现,项目中对Global.asax进行了优化,将原来在MVC3中使用的代码移到了 [App_Start]文件夹下,而Global.asax只负责初始化.其中的BundleCon ...

  9. Spring整合Junit4

    1.加入相应依赖包 junit4-4.7.jar 以及spring相关jar包 2.在测试代码的源码包中如 src/test/java 新建一个抽象类如下 import org.junit.runne ...

  10. GY编辑平台产品总结

    产品亮点一.实时直播流的关键帧识别并展示选择频道的实时流并播放后,会在窗口中自动展示关键帧图片:配对选择关键帧的截图即确定了素材的入点,出点:编辑平台图如下所示:二.广告自动识别与监测方案1. 制作样 ...