java private 虚函数,java 虚函数

场景:java中的“虚函数”解决方法

java中的“虚函数”

本帖最后由 sunmoon631 于 2011-05-28 17:58:40 编辑

java中是否有“虚函数”,请教高人讲解一下:

我的理解是这样

C++                    Java

虚函数     --------

纯虚函数   --------   抽象方法

抽象类     --------   抽象类

虚基类     --------   接口

有高人能详细的讲解一下,很感谢。

------最佳解决方案--------------------

从C的角度来考虑,那么java里除了抽象方法(或接口)外,都是虚函数

如果你非要这么一一对等,那么C的虚方法 -- java的一般方法

以前有人讨论过这个问题,把链接发给你,可以参考一下

http://topic.csdn.net/u/20110223/13/db22aa47-e910-4a1b-bd0d-4cf53523f360.html

------其他解决方案--------------------

引用:引用:

java中没有虚函数一说。。。不用再抠了

引用:

引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

我曾经遇到过个高人,他的观点是 java中 有虚函数,

我原来的观点是 java中不存在虚……

有没有是看问题的角度决定的,java语言肯定没有虚函数这个概念。但是实现上可以和c++的虚函数类比下。再有,可以看看jvm指令集中的invokevirtual,virtual这个名字……

------其他解决方案--------------------

无论是java语言规范还是java虚拟机规范中都找不到“虚函数”一词,所以,你这个所谓的“高手”,可能是个c++高手,肯定not java

引用:引用:

引用:

引用:

java中没有虚函数一说。。。不用再抠了

引用:

引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

……

------其他解决方案--------------------

c++中默认是静态绑定,想要运行时绑定,就得告诉编译器(声明为virtual)

java中默认是动态绑定,想要静态绑定,就告诉编译器(声明为final)

------其他解决方案--------------------

引用:引用:

c++中默认是静态绑定,想要运行时绑定,就得告诉编译器(声明为virtual)

java中默认是动态绑定,想要静态绑定,就告诉编译器(声明为final)

分析的很好,很感谢你的回答,感谢!

这里还要注意一下final和C的非虚函数还是有区别的,final就意味着该方法不能被子类重写,而C的非虚函数是可以被子类重写的。其实java和C是没有也没必要一一对等,只能说某些实现上相同或相似,关键是理解每个所谓的概念就好了。

------其他解决方案--------------------

这样比较没有任何意义

------其他解决方案--------------------

java不能总去和c++ 去比较,只要能理解就行了

------其他解决方案--------------------

这样比较没有意义,只能说明LZ没有理解面向对象

------其他解决方案--------------------

在c++中 不是只有使用指针才有多态吗

------其他解决方案--------------------

java中没有虚函数一说。。。不用再抠了

引用:引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

------其他解决方案--------------------

虚基类和接口关联比较牵强。

------其他解决方案--------------------

有多态,多态内有虚方法

------其他解决方案--------------------

个人觉得非要类比的话,java中只要是非final类型的方法都可以理解为虚函数。

都是可以被覆盖的。

------其他解决方案--------------------

不要想着啥都去找个对应的东西,在java中真还没听过虚函数这种说法

------其他解决方案--------------------

引用:这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

------其他解决方案--------------------

引用:从C的角度来考虑,那么java里除了抽象方法(或接口)外,都是虚函数

如果你非要这么一一对等,那么C的虚方法 -- java的一般方法

以前有人讨论过这个问题,把链接发给你,可以参考一下

http://topic.csdn.net/u/20110223/13/db22aa47-e910-4a1b-bd0d-4cf53523f360.html

你的回答很给力,这次彻底明白了。

真是高人,领教了。

谢谢你!

------其他解决方案--------------------

引用:java中没有虚函数一说。。。不用再抠了

引用:

引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

我曾经遇到过个高人,他的观点是 java中 有虚函数,

我原来的观点是 java中不存在虚函数

很感谢你。

------其他解决方案--------------------

引用:引用:

引用:

java中没有虚函数一说。。。不用再抠了

引用:

引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

我曾经遇到过个高人,他的观点是 java中……

很感谢你的回答,

是这样,某高人这样问我,javaz中虚函数的作用是什么?

------其他解决方案--------------------

引用:c++中默认是静态绑定,想要运行时绑定,就得告诉编译器(声明为virtual)

java中默认是动态绑定,想要静态绑定,就告诉编译器(声明为final)

分析的很好,很感谢你的回答,感谢!

------其他解决方案--------------------

我觉得没错

------其他解决方案--------------------

引用:c++中默认是静态绑定,想要运行时绑定,就得告诉编译器(声明为virtual)

java中默认是动态绑定,想要静态绑定,就告诉编译器(声明为final)

声明为final也是通过invokevirtual调用的,jit可以根据类型层次分析(CHA)来决定多态处理,不final照样可以直接绑定,所以final与否是设计层面的事情了。

------其他解决方案--------------------

引用:个人觉得非要类比的话,java中只要是非final类型的方法都可以理解为虚函数。

都是可以被覆盖的。

static?private?

------其他解决方案--------------------

引用:引用:

java中没有虚函数一说。。。不用再抠了

引用:

引用:

这样比较没有任何意义

现在不谈c++和java比较这个话题。

怎么理解java中的 虚函数

我曾经遇到过个高人,他的观点是 java中 有虚函数,

我原来的观点是 java中不存在虚……

Java不是没有虚函数而是都是虚函数!

------其他解决方案--------------------

正在学java,java中真还没听过虚函数这种说法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值