递归火山软件开发平台

标题: 突然理解吴总为啥不开放多态(⍻)(重载√)了 [打印本页]

作者: hcwanz    时间: 2023-10-4 15:02
标题: 突然理解吴总为啥不开放多态(⍻)(重载√)了
本帖最后由 hcwanz 于 2023-10-5 17:26 编辑

如图,是火山核心库里输入流对象的代码,看的一脸懵,搁这无限套娃呢
(, 下载次数: 36)
作者: hcwanz    时间: 2023-10-4 15:02
本帖最后由 hcwanz 于 2023-10-4 15:12 编辑

看明白了,好像下面的那个引用的是父对象的
作者: aneng    时间: 2023-10-4 16:01
自指,GO语言中的指针啊,都可以定义自指指针,程序名也相当于一个量,可以被赋值,我是我,我就是我,我还是我
作者: 折戟沉沙    时间: 2023-10-4 16:34
因为吴总,习惯一个东西兼容全部,所以就阉割来阉割去,导致越来越难用。
作者: shuimiao    时间: 2023-10-4 16:40
这种套娃语法能运行起来,说明是不同对象。但是就算能运行,看起来也麻烦。估计因为兼容语法的限制,导致很多语法无法实现。不过虽说兼容语句相似实现,但其实PC和安卓很多命令的命名习惯完全不同,有的人使用了PC某命令,去安卓输入同样命令根本找不到,。。有点尴尬,不知道兼容了个啥
作者: xrea    时间: 2023-10-4 18:04
还有一个函数重载这个功能也阉割了,封装类库的时候,每次都要重复劳动
作者: hcwanz    时间: 2023-10-4 19:00
xrea 发表于 2023-10-4 18:04
还有一个函数重载这个功能也阉割了,封装类库的时候,每次都要重复劳动

函数名可以封装完后把文本源码替换掉,“方法”后面和“<”前面的就是方法定义的地方,检测到重复的就在后面加个数字。
<火山程序 类型 = "通常" 版本 = 1 />

方法 方法1 <公开>
{

}




作者: Xelloss0618    时间: 2023-10-4 21:34
你们基础理论有待提高,首先火山没有阉割多态,函数重载就是函数重载,它不是多态,别乱叫。
火山不开放函数重载,我猜是因为太乱了,难以做到恰当的语法提醒。
强如VS Code,也只能提示这个函数有多少个重载,具体参数是什么,无法一目了然。
作者: hs999xl    时间: 2023-10-4 22:34
让所有人都能写程序。
不是让一部分人写程序。
作者: 一代码农    时间: 2023-10-4 23:18
本帖最后由 一代码农 于 2023-10-5 05:43 编辑
Xelloss0618 发表于 2023-10-4 21:34
你们基础理论有待提高,首先火山没有阉割多态,函数重载就是函数重载,它不是多态,别乱叫。
火山不开放函 ...

难点就在于准确的提示以及精准的跳转。
如果参数数量一致,暂且先把匹配项全列出来,日后慢慢优化,但不要阉割啊。
作者: server    时间: 2023-10-5 00:13
本帖最后由 server 于 2023-10-5 00:28 编辑
Xelloss0618 发表于 2023-10-4 21:34
你们基础理论有待提高,首先火山没有阉割多态,函数重载就是函数重载,它不是多态,别乱叫。
火山不开放函 ...

(, 下载次数: 31)


这有什么好纠结的。
多态承载之类的 单独参数不显示。 鼠标放到名称上,直接一股脑全给他 递增排序 显示出来。

实际翻译的时候,根据参数匹配即可。

  1.     重载规则:
  2.     (1)包含多个同名函数,但是参数各不相同。
  3.     (2)参数类型、参数个数、参数顺序(不同类型间)至少有一个不同。
  4.     (3)可以改变返回值类型(不能作为重载判断依据)
  5.     (4)可以改变访问修饰符(不能作为重载判断依据)
  6.     (5)可以改变异常类型和数量(不能作为重载判断依据)

  7.     重写规则:
  8.     (1)存在于子类和父类之间
  9.     (2)子类必须和父类的方法名和参数列表必须完全相同。
  10.     (3)可以改变返回值类型,但子类返回值类型必须是父类返回值类型的派生类。
  11.     (4)可以改变访问修饰符,但是子类权限只能更开放。
  12.     (5)声明为 final 的方法不能被重写。
  13.     (6)声明为 static 的方法不能被重写,但是可以被重新声明。
  14.     (7)构造器不能被重写。
  15.     (8)子类和父类在同一个包中时,子类可以重写父类所有方法(出 private 和 final)。
  16.     (9)子类和父类在不同包中时,子类只能重写父类的 public 和 protected 的非 final 方法。
  17.     (10)重写可以抛出任何非强制性异常,但是不能抛出新的强制性异常,或者比父类方法更广泛的异常。
复制代码


作者: 一代码农    时间: 2023-10-5 08:46
相比重载,哪怕提示不正确,跳转错误我也能接受
必竟重载太香了。
作者: 龙纹    时间: 2023-10-5 17:06
Xelloss0618 发表于 2023-10-4 21:34
你们基础理论有待提高,首先火山没有阉割多态,函数重载就是函数重载,它不是多态,别乱叫。
火山不开放函 ...

"函数重载就是函数重载,它不是多态,别乱叫。"
C++有动态多态、静态多态,火山的多态是动态多态,而函数重载是静态多态的一种实现方式。
不过他们说的确实太模糊了一点,说函数重载更准确。
作者: scholer    时间: 2023-10-5 20:44
方法重载和方法覆盖分不清的路过,所以也不知道什么是多态的实现




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4