多态理解

转载 2015年07月09日 17:20:00

父类:
public class A{
public void a(){
System.out.println(“a”);
}
}
子类1:
public class A1 extends A{
public void a(){
System.out.println(“a1”);
}
}
子类2:
public class A2 extends A{
public void a(){
System.out.println(“a2”);
}
}
测试类如下:
public class Test{
public static void main(String[] args){
A a = new A();
A a1 = new A1();
A a2 = new A2();
a.a();
a1.a();
a2.a();
}
}
毫无疑问,结果如下:
a
a1
a2
为啥它能够正确地调用a()方法呢,因为多态、动态绑定。
这也就是说,当你有一个基类,比如说形状类Shape,然后其有一个方法getDesc()获得其描述。Shape的子类Circle,Triangle,各自重载其父类的getDesc()方法,Circle的getDesc()返回“我是圆形”,Triangle的getDesc()返回“我是三角形”。然后某一个类的某一个方法如下:
String test(Shape shape){
return shape.getDesc();
}
你在调用test()方法时可里往里面传的参数类型可以是Shape、Circle或Triangle,多态能够保证getDesc()方法被正确调用,这叫动态绑定,从而你不用写三个如下的方法,即test(Shape s),test(Circle c),test(Triangle t)。

从上面的代码看出,要实现多态,要有以下几个条件:存在继承(父类、子类A、子类B、子类C),以及子类A、子类B、子类C对父类方法的不同重载

然后怎么用呢?

我的理解是:引用对象用父类,实例对象可以是子类A、子类B、子类C中的任意一个,等到具体对引用对象进行操作的时候,(如此处代码中的shape.getDesc()),系统会根据实例对象,智能地执行相应子类的代码!!

来源:http://zhidao.baidu.com/link?url=p4CYCgT7YkXdUfH8mSjf75BAaEuS9silynC6Uek747knbSh5DcyIqb0hzOKdJ7Q26iBNkr52WnngLA_der8Skq

举报

相关文章推荐

java多态理解

(一)相关类 class A ...{            public String show(D obj)...{ ...

多态的理解

(1)同一个对象在不同时刻体现出来的不同状态。 (2)多态的前提: A:有继承或者实现关系。 B:有方法重写。 C:有父类或者父接口引用...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

c++ 多态理解

c++ 多态       C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握...

java多态理解

Java多态性理解 Java中多态性的实现 什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概...

多态的理解

多态:一个引用在不同情况下的多种状态,父类的引用指向子类的对象。 下面通过一个实例分析: package com.itheima; class Animal { void eat() { ...

多态的理解

1.对多态的理解:同一个对象在不同时刻体现出来的不同状态。 简单来说就是猫和狗都是动物,但他们又有许多不同,猫和狗是动物向下延伸的不同结果,这就是多态。 2.多态的前提: A:有...

理解JAVA多态

作者:mienflying 日期:2006-08-19 本文来自blogjava,我发现作者原Flyingis写的很好,很到位,就转过来了,自己就懒的写了……在此为其表示感谢!这几天我在重新复习Jav...

多态的理解

这些天在啃框架,为啥突然将多态这个东西,看到周围同学似乎真的很难理解这个叫做多态的东西,我就讲讲我关于多态的一个理解,尽量做到通俗易懂。

java--多态理解

/* 目的:理解多态的特点 要求: 子类:基础班学员 学习、睡觉(坐着睡) 感激办学员 学习、睡觉(躺着睡) 可以将两类事物进行抽取 父类-学生类 */ abstra...

OC 多态理解

java中我们通常通过接口来实现多态度, 一般的写法就是,在一个方法中传入的参数是一个接口,然后通过接口的形式来进行方法的调用。 而出入的参数都是这个接口的实现类,实现类是什么,那么我们接口中,动态的...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)