OOP中的父母和子女

时间:2017-02-22 15:24:55

标签: c# oop

假设我们有两个类如下:

class Parent 
{
    public int ParentId {get; set;}
}

class Child : Parent
{
    public int ChildId {get; set;}
}

根据以上所述,哪条线是正确的,为什么?以及哪条线不正确,为什么?

  • 父p =新Child();
  • Child c = new Parent();

更新:我忘记从Parent继承Child并且我更正了!

1 个答案:

答案 0 :(得分:1)

第一个是正确的,第二个不是。

根据定义,Child将继承Parent的所有属性和方法;但是,Parent不会拥有Child的所有属性和/或方法,因此第二个语句没有意义:

class Parent 
{
    public int ParentId { get; set; }

    public void Eat { ... }
}

class Child : Parent
{
    public int ChildId { get; set; }

    public void Play { ... }
}

Parent child = new Child();
child.Eat(); // this makes sense since this is common functionality

Child parent = new Parent();
parent.Play() // this does not make sense since a Parent doesn't know hot to play