Inheritance and base ???

  • Thread starter Thread starter news
  • Start date Start date
N

news

Is this construction possible????

class MyClass1
{
....
}

class MyClass2 : MyClass1
{
....
}

..... somewhere in the code:

MyClass1 myClass1 = new MyClass1()
MyClass2 myClass2 = (MyClass2) myClass1;

Can I simply convert base class into inherited class???
Or how to pass initialized base class into new inherited_class ????

Thanks

Mike
 
Is this construction possible????

class MyClass1
{
...
}

class MyClass2 : MyClass1
{
...
}

.... somewhere in the code:

MyClass1 myClass1 = new MyClass1()
MyClass2 myClass2 = (MyClass2) myClass1;

Can I simply convert base class into inherited class???
Or how to pass initialized base class into new inherited_class ????

Thanks

Mike

No, this direction is not possible.
Say MyClass1 == Mammal and MyClass2 == Dog
then you can treat a Dog as a (more general) Mammal,
but you can't just treat any Mammal as a Dog

Hans Kesting
 
NO, you can not cast a class to an inherited class because the parent class
don't know the design of the inherited class. What you can do is this:

MyClass1 myClass1 = new MyClass2();
MyClass2 myClass2 = myClass1 as MyClass2;

Hope this helps.
 
I am not quite sure what you want to do, but maybe this ?

class MyClass1
{
public string s_Text = "This is MyClass1";
...
}

class MyClass2 : MyClass1
{
MyClass1 mc_bla=null;
public MyClass2(MyClass1 bla)
{
mc_bla = bla;
// at this point s_Text is : This is MyClass1
s_Text = "This is MyClass2";
// now changed
}
public OnDoSomething()
{
MessageBox.Show("Class1("+mc_bla.s_Text+") ; Class2("+s_Text+")";
}

}

MyClass1 myClass1 = new MyClass1()
MyClass2 myClass2 = new MyClass2(myClass1);
myClass1.s_Text = "Changed Text in Class1";
myClass2.OnDoSomething();

Result should be : "Class1(Changed Text in Class1) ; Class2(This is
MyClass2)"

Mark Johnson, Berlin Germany
(e-mail address removed)
 
Back
Top