前几天我看到了这样的代码:
2.8 3.0 1
28.4 3.0 1
36.2 3.0 1
70.49 3.0 1
85.19 3.0 1
儿子从继承自儿子的父继承而来。
搜索循环继承但仅搜索Java结果。
这叫什么?
答案 0 :(得分:5)
示例代码(现在已被删除)并不能完成你的想法。您看到TMycxGridDBTableView
被定义为TcxGridDBTableView
的后代,然后您会看到TcxGridDBTableView
,定义为TcxGridDBTableView
的后代。
但是,您在顶部看到的TcxGridDBTableView
与您稍后看到的TcxGridDBTableView
不同。第一个是指在别处宣布的类,在其他一些单元中。下一个例子是在这个单元中声明一个 new 类,该单元恰好与其他单元的类具有相同的基本名称。
此技术称为插入类。它曾用于引入新的GetViewDataClass
方法,但最终仍然使用相同的类名。使用具有该名称的控件的表单将使用该类的新版本而不是原始版本。这是一种自定义VCL控件的方法,无需编译和安装自定义包。
答案 1 :(得分:4)
无意义。你可以让TSon拥有类型为TFather的属性,使用具有属性TSon的TFather,但你所写的内容纯属无意义。
以下是有道理的,但没有特殊术语,因为没有递归:
type
TFather = class;
TSon = class
public
Father : TFather;
end;
TFather = class
public
Son : TSon;
end;
答案 2 :(得分:3)
我不知道它叫什么,但它没有意义。这根本不可能。
如果我尝试编译此代码:
type
TFather = class;
TSon = class(TFather)
end;
TFather = class(TSon)
end;
我明白了:
[dcc32 Error] Project1.dpr(12): E2086 Type 'TFather' is not yet completely defined
,这是预期的。
Java中的循环继承是一个错误条件。如果像这样的事情是直接或间接发生的(即中间有几个类),你会得到一个诊断提及“循环继承”。换句话说,它不是一个编程概念,它是一个错误条件。
答案 3 :(得分:1)
这叫什么?
技术术语是语法错误。此代码是非法的。