继承与多态
base关键字
1.用于从派生类中访问基类成员
2.指定创建派生类实例时应调用的基类构造函数
new 覆写
virtual 定义虚方法,在子类中可以去改变这个方法
override 重写,将父类中的方法重写为子类中的方法,不能修改访问修饰符
多态:一个方法在不同子类中所实现不同,这个特征叫多态
抽象类:对一系列类的抽象
1.抽象类不能直接实例化
2.抽象方法不能有方法体
3.抽象方法只能写在抽象类里
4.非抽象类继承抽象类时,抽象类中的所有抽象方法必须实现
5.属性也可以定义为抽象的,属性本身也是方法
接口:是对功能约束的一种类型
类是接口的实现者
1.类的继承只能是单继承,接口的继承可以是多继承
2.不允许有字段定义与具体方法的实现
3.定义方法时,访问修饰符默认就是public,也值能是public,所以public不需要写
sealed 密封的,不允许被继承
sealed class密封类,不允许再被继承的类
sealed override 来修饰方法,说明这个方法不允许在这个类的子类中被重写
一般的方法都是在编译是决定:早绑定
base关键字
1.用于从派生类中访问基类成员
2.指定创建派生类实例时应调用的基类构造函数
new 覆写
virtual 定义虚方法,在子类中可以去改变这个方法
override 重写,将父类中的方法重写为子类中的方法,不能修改访问修饰符
多态:一个方法在不同子类中所实现不同,这个特征叫多态
抽象类:对一系列类的抽象
1.抽象类不能直接实例化
2.抽象方法不能有方法体
3.抽象方法只能写在抽象类里
4.非抽象类继承抽象类时,抽象类中的所有抽象方法必须实现
5.属性也可以定义为抽象的,属性本身也是方法
接口:是对功能约束的一种类型
类是接口的实现者
1.类的继承只能是单继承,接口的继承可以是多继承
2.不允许有字段定义与具体方法的实现
3.定义方法时,访问修饰符默认就是public,也值能是public,所以public不需要写
sealed 密封的,不允许被继承
sealed class密封类,不允许再被继承的类
sealed override 来修饰方法,说明这个方法不允许在这个类的子类中被重写
一般的方法都是在编译是决定:早绑定
多态的方法在运行时绑定:晚绑定
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
/// <summary>
/// 动物
/// </summary>
class Animal
{
private double height = 0;
protected double Height
{
get { return height; }
set { height = value; }
}
prot