<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FClass%2FDerived_Class</id>
		<title>Csharp/CSharp Tutorial/Class/Derived Class - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FClass%2FDerived_Class"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Derived_Class&amp;action=history"/>
		<updated>2026-04-29T21:52:15Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Derived_Class&amp;diff=5629&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Derived_Class&amp;diff=5629&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Derived_Class&amp;diff=5630&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Class/Derived_Class&amp;diff=5630&amp;oldid=prev"/>
				<updated>2010-05-26T12:16:04Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A base class reference can refer to a derived class object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System; &lt;br /&gt;
 &lt;br /&gt;
class BaseClass { &lt;br /&gt;
  public int a; &lt;br /&gt;
 &lt;br /&gt;
  public BaseClass(int i) { &lt;br /&gt;
    a = i; &lt;br /&gt;
  } &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
class DerivedClass : BaseClass { &lt;br /&gt;
  public int b; &lt;br /&gt;
 &lt;br /&gt;
  public DerivedClass(int i, int j) : base(j) { &lt;br /&gt;
    b = i; &lt;br /&gt;
  } &lt;br /&gt;
} &lt;br /&gt;
 &lt;br /&gt;
class MainClass { &lt;br /&gt;
  public static void Main() { &lt;br /&gt;
    BaseClass x = new BaseClass(10); &lt;br /&gt;
    BaseClass x2;  &lt;br /&gt;
    DerivedClass y = new DerivedClass(5, 6); &lt;br /&gt;
 &lt;br /&gt;
    x2 = x; // OK, both of same type &lt;br /&gt;
    Console.WriteLine(&amp;quot;x2.a: &amp;quot; + x2.a); &lt;br /&gt;
 &lt;br /&gt;
    x2 = y; // Ok because DerivedClass is derived from BaseClass &lt;br /&gt;
    Console.WriteLine(&amp;quot;x2.a: &amp;quot; + x2.a); &lt;br /&gt;
 &lt;br /&gt;
    // BaseClass references know only about BaseClass members &lt;br /&gt;
    x2.a = 19; // OK &lt;br /&gt;
//    x2.b = 27; // Error, BaseClass doesn&amp;quot;t have a b member &lt;br /&gt;
  } &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;x2.a: 10&lt;br /&gt;
x2.a: 6&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Illustrates member accessibility in subclass==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
public class Car&lt;br /&gt;
{&lt;br /&gt;
  private   string make;&lt;br /&gt;
  protected string model;&lt;br /&gt;
  public Car(string make, string model)&lt;br /&gt;
  {&lt;br /&gt;
    this.make = make;&lt;br /&gt;
    this.model = model;&lt;br /&gt;
  }&lt;br /&gt;
  public virtual void Start()&lt;br /&gt;
  {&lt;br /&gt;
    startCar();&lt;br /&gt;
    System.Console.WriteLine(&amp;quot;Vehicle started&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  private void startCar()&lt;br /&gt;
  {&lt;br /&gt;
    System.Console.WriteLine(&amp;quot;Turning starter motor...&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MyFirstCar : Car&lt;br /&gt;
{&lt;br /&gt;
  public MyFirstCar(string make, string model) : base(make, model)&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
  public override void Start()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Starting &amp;quot; + model);  &lt;br /&gt;
    base.Start();  &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
  public static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    MyFirstCar myCar = new MyFirstCar(&amp;quot;Toyota&amp;quot;, &amp;quot;MR2&amp;quot;);&lt;br /&gt;
    myCar.Start();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Starting MR2&lt;br /&gt;
Turning starter motor...&lt;br /&gt;
Vehicle started&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Illustrates member hiding==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
public class BaseClass&lt;br /&gt;
{&lt;br /&gt;
  public string lastName;&lt;br /&gt;
  public string firstName;&lt;br /&gt;
  public BaseClass(string lastName, string firstName)&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In BaseClass constructor&amp;quot;);&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    Console.WriteLine(&amp;quot;this.lastName = &amp;quot; + this.lastName);&lt;br /&gt;
    Console.WriteLine(&amp;quot;this.firstName = &amp;quot; + this.firstName);&lt;br /&gt;
  }&lt;br /&gt;
  public void DisplayfirstName()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In BaseClass DisplayfirstName() method&amp;quot;);&lt;br /&gt;
    Console.WriteLine(&amp;quot;firstName = &amp;quot; + firstName);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class DerivedClass : BaseClass&lt;br /&gt;
{&lt;br /&gt;
  public new string firstName;&lt;br /&gt;
  public DerivedClass(string lastName, string firstName) : base(lastName, &amp;quot;Test&amp;quot;)&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In DerivedClass constructor&amp;quot;);&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    Console.WriteLine(&amp;quot;this.firstName = &amp;quot; + this.firstName);&lt;br /&gt;
  }&lt;br /&gt;
  public new void DisplayfirstName()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;In DerivedClass DisplayfirstName() method&amp;quot;);&lt;br /&gt;
    Console.WriteLine(&amp;quot;firstName = &amp;quot; + firstName);&lt;br /&gt;
    base.DisplayfirstName();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
  public static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    Console.WriteLine(&amp;quot;Creating a DerivedClass object&amp;quot;);&lt;br /&gt;
    DerivedClass myDerivedClass = new DerivedClass(&amp;quot;A&amp;quot;, &amp;quot;B&amp;quot;);&lt;br /&gt;
    Console.WriteLine(&amp;quot;Back in Main() method&amp;quot;);&lt;br /&gt;
    Console.WriteLine(&amp;quot;myDerivedClass.lastName = &amp;quot; + myDerivedClass.lastName);&lt;br /&gt;
    Console.WriteLine(&amp;quot;myDerivedClass.firstName = &amp;quot; + myDerivedClass.firstName);&lt;br /&gt;
    Console.WriteLine(&amp;quot;Calling myDerivedClass.DisplayfirstName()&amp;quot;);&lt;br /&gt;
    myDerivedClass.DisplayfirstName();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Creating a DerivedClass object&lt;br /&gt;
In BaseClass constructor&lt;br /&gt;
this.lastName = A&lt;br /&gt;
this.firstName = Test&lt;br /&gt;
In DerivedClass constructor&lt;br /&gt;
this.firstName = B&lt;br /&gt;
Back in Main() method&lt;br /&gt;
myDerivedClass.lastName = A&lt;br /&gt;
myDerivedClass.firstName = B&lt;br /&gt;
Calling myDerivedClass.DisplayfirstName()&lt;br /&gt;
In DerivedClass DisplayfirstName() method&lt;br /&gt;
firstName = B&lt;br /&gt;
In BaseClass DisplayfirstName() method&lt;br /&gt;
firstName = Test&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>