java中多态是怎么实现的?
如题,希望可以说的详细点。
------解决方案-------------------- JVM 指令 invokevirtual 调用方法,就是调用派生类的方法了。
这样就要讲到如何编译一段代码,是编译invokevirtual,还是invokestatic。。。
一个函数是不是static的,还不是很清楚的事情吗,另外非final private的函数,都是virtual函数。
你说好编译不?
------解决方案-------------------- 定义接口,然后类实现接口
Java code
package asmTest;
public interface MyInterface
{
public String sayHello();
}
------解决方案-------------------- 学习下···
------解决方案-------------------- 以重载和重写来实现的
------解决方案-------------------- 多态 实现有两种方式 一种就是楼上说的,继承 ; 另一种就是 方法 重载
------解决方案-------------------- 对的 探讨 以重载和重写来实现的
------解决方案-------------------- http://news.newhua.com/news1/program_net/2009/922/09922143128BAI28F2H431A54CKHH5H3F3FHIDH651H4F4H868FAC4HG.html
------解决方案-------------------- 顶一楼 附加一个生动的说法 什么是多态 老大要收高利贷,对三个小弟说,给我去跟某某某收高利贷(这就是一个借口,定义收高利贷方法) 三个小弟A,B,C听到了之后采取不同的行动, A:打电话过去威胁说不换就XXX(这就是具体的实现)恐吓 B: 直接带家伙杀到他家楼下等(这也是实现)威逼 C:直接面谈,说换1W返回1百,下次再借,利率打折(这也是实现)利诱 相同的动作对不同的类有不同的实现方法,这就是多态。 失敬失敬
------解决方案-------------------- http://news.newhua.com/news1/program_net/2009/922/09922143128BAI28F2H431A54CKHH5H3F3FHIDH651H4F4H868FAC4HG.html[/code]
------解决方案-------------------- 探讨 顶一楼 附加一个生动的说法 什么是多态 老大要收高利贷,对三个小弟说,给我去跟某某某收高利贷(这就是一个借口,定义收高利贷方法) 三个小弟A,B,C听到了之后采取不同的行动, A:打电话过去威胁说不换就XXX(这就是具体的实现)恐吓 B: 直接带家伙杀到他家楼下等(这也是实现)威逼 C:直接面谈,说换1W返回1百,下次再借,利率打折(这也是实现)利诱 相同的动作对不同的类有不同的实现方法,这就是多态。 失敬失敬
------解决方案-------------------- Java code
多态。。 就是
public interface Parent
{
public void printf();
}
class ChildB
{
public void printf()
{
// to do
}
}
class ChildB
{
void printf()
{
// to do
}
------解决方案-------------------- 这个问题关系到Java中方法的动态绑定问题 建议楼主去看下 thinking in Java 那里边比较仔细
------解决方案-------------------- 复习了
------解决方案-------------------- 探讨 JVM 指令 invokevirtual 调用方法,就是调用派生类的方法了。 这样就要讲到如何编译一段代码,是编译invokevirtual,还是invokestatic。。。 一个函数是不是static的,还不是很清楚的事情吗,另外非final private的函数,都是virtual函数。 你说好编译不?
------解决方案-------------------- 不要想多了 简单点就是一个子类的对象指向一个父类的引用 father f=new son()
------解决方案-------------------- 多态,简单点说就是:重写加重载。 详见任意一本java书。
------解决方案-------------------- 先说方法的多态: 顾名思义“多态”,方法的多种形态; 【多态的官方定义是: 多态(Polymorphism)是面向对象技术的核心概念,按字面意思就是“多种形状”。Java语言的多态不是一个独立特性,其优越性体现在类的继承、使用接口等多方面,同时也使人感觉较难理解。理清与多态有关的概念,有助于在程序设计中正确实现多态】 简单的说就是方法的重写Overriding和重载Overloading是Java多态性的不同表现;(需要你好好看看Overriding,与Overloading我在这儿就不说了) 需要注意的是: 当父类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法。 将子类对象赋值给父类对象,所得到对象是这样的一个对象: