Всем привет и с наступающим! Читаю книгу Герберта Шилдта по с# и мне стал непонятен один момент:
Например, у нас есть два класса один базовый другой производный:
using System;
class People{
public int year{get; private set;}
public string name {get; private set;}
public People(){
year=0;
name="No Name";
}
public People(string n,int y){
name=n;
year=y;
}
public People(People ob){
name=ob.name;
year=ob.year;
}
}
class John:People{
string job;
int money;
string adress;
public John(): base()
{
job="No job";
money=0;
adress="No adress";
}
public John(string n, int y, string a, string j, int m) : base(n, y){
job=j;
adress=a;
money=m;
}
public John(John ob): base(ob){
adress=ob.adress;
job=ob.job;
money=ob.money;
}}
class Program{
static void Main(){
John ob=new John( "John", 34 , "Liverpool", "programmer",150000);
John ob1=new John(ob);
Console.WriteLine("Name: "+ob1.name);
Console.WriteLine("Year: "+ob1.year);
Console.ReadKey(true);
}
}
Почему в конструкторах обькты которых являются параметрами , не выходит ошибка?
По идее когда в этой строке кода
public John(John ob): base(ob)
выполняется операция
People ob= Joh ob;
Но это не верно с точки зрения логики,
Почему?