Я не уверен, чего ты хочешь достичь. Я попытался выяснить это, учитывая этот другой вопрос , но он может помочь получить больше деталей о том, какие функции / поведение должен выполнять ваш родитель, ребенок и родитель p = new Child ().
Я собрал краткий обзор пары общих способов борьбы с наследованием. Но вы, возможно, ищете более конкретный c случай.
package Inheritance
import SI = Modelica.SIunits;
connector PositivePin "Positive pin of an electrical component"
SI.ElectricPotential v "Potential at the pin";
flow SI.Current i "Current flowing into the pin";
end PositivePin;
partial model OnePort
"Component with two electrical pins p and n and current i from p to n"
SI.Voltage v "Voltage drop of the two pins (= p.v - n.v)";
SI.Current i "Current flowing from pin p to pin n";
Inheritance.PositivePin p "Positive electrical pin";
Modelica.Electrical.Analog.Interfaces.NegativePin n "Negative electrical pin";
equation
v = p.v - n.v;
0 = p.i + n.i;
i = p.i;
end OnePort;
model Resistor "Ideal linear electrical resistor"
parameter SI.Resistance R = 1
"Resistance at temperature T_ref";
extends Inheritance.OnePort;
equation
v = R*i;
end Resistor;
model Circuit
Resistor r( R=10);
Modelica.Electrical.Analog.Basic.Ground ground;
Modelica.Electrical.Analog.Sources.ConstantVoltage constantVoltage(V=1);
equation
connect(constantVoltage.n, ground.p);
connect(constantVoltage.p, r.n);
connect(r.p, ground.p);
end Circuit;
end Inheritance;
, чтобы экземпляр p класса соединителя PositivePin
Inheritance.PositivePin p;
приводил переменные i, v в частичная модель OnePort (см. язык spe c для переменных потенциала и потока).
В классе модели Resistor
extends Inheritance.OnePort;
создаются переменные
- i, v
- pi, pv через экземпляр p класса PositivePin
- ni, nv через экземпляр n класса NegativePin
а также уравнения
- v = pv - nv;
- 0 = pi + ni;
- i = pi;
Наконец, в классе модели Circuit
Resistor r(R=10);
создает экземпляр класса Resistor с помощью так называемого модификатора, так что экземпляр r имеет значение сопротивления R = 10 вместо значения класса по умолчанию R = 1