里氏转换:
1、子类可以赋值给父类
2、如果父类中装的是子类对象,则可以将这个父类转换为对应的子类对象
---->关键字
1、is:返回bool类型,指示是否可以做这个转换
2、as:如果转换成功,则返回对象,否则返回null
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _06里氏转换
{
class Program
{
static void Main(string[] args)
{
Person person = new Student();
//if (person is Teacher)
//{
// ((Teacher)person).TeacherSayHello();
//}
//else
//{
// Console.WriteLine("转换失败");
//}
Student s = person as Student;//将person转换为student对象
if (s != null)
{
s.StudentSayHello();
}
else
{
Console.WriteLine("转换失败");
}
Console.ReadKey();
//is as
}
}
class Person
{
public void PersonSayHello()
{
Console.WriteLine("我是父类");
}
}
class Student : Person
{
public void StudentSayHello()
{
Console.WriteLine("我是学生");
}
}
class Teacher : Person
{
public void TeacherSayHello()
{
Console.WriteLine("我是老师");
}
}
}