面向对象的继承
注:
(1)子类可以调用父类的成员,但是父类不可调用子类的成员
里氏转换语法
(1)子类可以赋值给父类
目的:凡是有需要父类作为参数的地方,就用子类代替
(2)如果父类中装的是子类对象,那么可以将这个父类转换为子类对象
(3)转换时容易出错因此使用 is 或者 as来判断是否转换成功 (is 或者 as都表示类型转换)
1)is:转换成功,则返回true,失败返回flase
2)as:转换成功,则返回对应的对象,失败返回null
例:
using System;
using 类的基本语法;
namespace refs
{
class Program
{
static void Main(string[] args)
{
//(1)子类可以赋值给父类
//目的:凡是有需要父类作为参数的地方,就用子类代替
Person person = new Student(); // 实例化子类对象赋值给父类(此时父类中装的是子类对象)
//(2)如果父类中装的是子类对象,那么可以将这个父类转换为子类对象
//is判断转换
if (person is Student)
{
Student ss = (Student)person;//强转
ss.Stu();//调用
}
else
{
Console.WriteLine("转换失败");
}
}
//as判断
Student student = person as Student ;
student.Stu();
}
//父类
public class Person
{
public void Per()
{
Console.WriteLine("我是父类");
}
}
//子类
public class Student:Person
{
public void Stu()
{
Console.WriteLine("我是子类");
}
}
}