您的位置:首页 > 编程语言 > C#

c# 父类的引用指向子类的实例

2015-07-29 15:31 267 查看

在C#中关于父类对子类的引用大概有这么几种:

父类是接口,普通类,抽象类

public interface A
{
void a();
}

public class B
{
public void b()
{
Console.WriteLine("B-b");
}

public virtual void bb()
{
Console.WriteLine("B-bb");
}
}

public abstract class C
{
public abstract void c();
}

public class AA : A
{
public void a()
{
Console.WriteLine("AA-a");
}
}

public class BB : B
{
public void b()
{
Console.WriteLine("BB-b");
}
public override void bb()
{
Console.WriteLine("BB-b");
}
}

public class CC : C
{
public override void c()
{
Console.WriteLine("CC-c");
}
}
A a = new AA();
B b = new BB();
C c = new CC();
a.a();
b.b();
b.bb();
c.c();

运行结果:

个人理解:

1、父类的引用可以调用父类中定义的属性和方法,对于在父类中没有的定义,在子类中单独进行了定义,父类的引用是不可以调用的

2、对于父类和子类同时定义了某方法的

2.1、子类重写了父类方法,父类的引用调用子类重写后的方法

2.2、子类没有重写父类方法的,父类的引用调用父类自身的方法

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: