V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nguoidiqua  ›  全部回复第 67 页 / 共 73 页
回复总数  1450
1 ... 59  60  61  62  63  64  65  66  67  68 ... 73  
2019-08-12 08:47:03 +08:00
回复了 caliburn1994 创建的主题 奇思妙想 真假的互联(局内)网
不要太在意别人评价,无论现实还是网络,每个人的标准是不同的。

具体网上买东西,我的原则是这样的:

不买月销量很高的东西,不买大店东西,同样一个东西,开始的品质远远好过它火了之后,服务也是如此。建议买那些月销量在一百左右的东西,选择全店月销量几百规模的店子。

不管差评,不管好评,因为真实性都存疑。而且就算是真的,也往往是主观性很强的。只看默认评价占比就行了,默认评价占绝大部份的,那商品基本放心。

看店子的商品介绍之类做得是否比较有条理,是务实还是夸大其词之类,从这些细节上判断店主的做事风格,或者聊一聊也行。
如果你非要说父类的字段我就是不要改,我就是要两个字段同时存在并打印子类新声明的同名字段,那只能重写 show,虽然一模一样……

如果你只是想要子类打出和父类不一样的值,那给字段赋值的方法很多,最简单的就是在初始化代码块里面赋值,就写两个大括号而已,不要声明,直接赋值。

class Son extends Father {
{
this. name = "son";
}
}

其实 PHP 和 Java 的继承机制不同的,我试了下把你这个 PHP 例子里面 Father 的 name 字段直接去掉,子类依然可以正常调用 show 方法,倒是 Father 自己调会报错。我感觉 PHP 的继承好像就是把父类的字段和方法直接 include 到子类里面去,和 Java 完全不一样的。

老实说,比起它们这两者,我更喜欢 GO 那种面向对象的实现方式。
多态的意义是同一个方法可以由子类进行不同的实现,然后用父类调用的时候可以表现不同的形态。

所以你这个例子本身就体现不了多态的意义,能表现的只有继承机制的意义。

你是想 show 的时候显示子类赋值的名字而已,那你直接给 name 字段改个值就是了,Java 声明并赋值和单纯赋值是有区别的,这跟 PHP 不一样。

你去反编译下 class 文件看看就知道了,如果子类没有重写父类方法的话,实际上子类是没有这个方法的,它会去引用的父类方法,字段也是如此的,没有声明的话就是没有这个字段。它运行时会先从自身寻找方法或字段,找不到就去上级类找。而父类那个 show 方法,编译后它会把参数改成 this.name,所以它打印的是一定是它自身的 name 字段。

现在你没有去改 super.name 的值,你是在子类这层新声明了一个新的 name 字段,你赋值的时候,改的只是子类这层的字段,父类不会变的。如果你没有声明新字段,而是直接赋值 this.name = "son",那么由于子类是没有这个字段的,它就回去往上找这个字段,找到父类有这个字段,然后改成 ” son “,这就能达到了你的目的。
2019-08-10 13:19:46 +08:00
回复了 Leigg 创建的主题 剧集 哪吒好看吗,看了好多公众号说十年磨一剑
你看下国产票房第一不就知道了,国内现在是稍微好点的电影都要吹上天,太饥渴了。
1 ... 59  60  61  62  63  64  65  66  67  68 ... 73  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.