欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
1、继承的意义:继承定义了类如何相互关联,共享特性。
2、继承的概念:当一个类A能够获取另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分是,就称这两个类之间具有继承关系。被继承的类B称为父类或超类,继承了父类或超类的数据和操作的类A称为子类。
3、继承的建立:继承就是在现有类的基础上建立新类的过程。
4、继承的关系:一个父类可以拥有多个子类,一个子类也可以成为其他类的基类。
5、继承的语法格式:[访问权限]class<派生类名>:<基类名>{//派生类定义}
1)子类可以使用父类的protected和public可见的变量和方法,就像这些变量和方法是自己定义的一样。
2)私有成员和方法其实已经被继承了,但是它们却不可以被访问,因为私有成员和方法只能被声明它们的类中才可访问,所以看上去像是没有被继承。
3)C# 中,如果类声明时没有声明父类,那么缺省为Object 类的子类。C#中的所有类都是System.Object类的子类。
4)C#中,子类只能继承一个父类,但一个基类可以有多个直接派生类。继承是可以传递的。
代码:class Car
{
int color;
int door;
int speed;
public void AddOil() { }
}
class TrashCar : Car{ }
class MyApp
{
static void Main()
{
TrashCar myCar = new TrashCar();
myCar.AddOil();
}
}
6、sealed:能够阻止某各类被其他类继承。
sealed class A
{
int test;
public void Sum(int i,int j)
{
int sum = i + j;
Console.WriteLine("I am A ,my sum ={0}",sum);
}
}
class B : A
{
public void Minus(int i,int j)
{
int minus = i - j;
Console.WriteLine("I am B ,my minus ={0}", minus);
this.Sum(3, 4); //编译器会报错
}
}
7、继承时的注意事项。
1)继承是可传递的:如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。
2)派生类应当是对基类的扩展:派生类可以添加新的成员,但不能除去已经继承的成员的定义。
3)构造函数和析构函数不能被继承:除此之外的其他成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类是否访问它们。
4)派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员:但是并不是派生类删除了这些成员,只是不嗯能够再访问这些成员。
5)派生类调用构造函数时,会先调用基类的构造函数。默认调用没有参数的构造函数。
6)用base关键字显式调用基类构造函数(如果基类定义了带有参数的构造函数,那么此构造函数必须被执行,且在派生类中实现该构造函数,此时我们可以使用base关键字)。
class Car
{
public Car(int i) { }
}
class TrashCar : Car
{
public TrashCar(int i):base(i) { }
}
8、继承的优点。
1)继承描述了“是什么种类”的关系。
2)派生类从基类继承属性和方法,实现了代码的重用。
3)派生类变得更专门化。
1、继承的意义:继承定义了类如何相互关联,共享特性。
2、继承的概念:当一个类A能够获取另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分是,就称这两个类之间具有继承关系。被继承的类B称为父类或超类,继承了父类或超类的数据和操作的类A称为子类。
3、继承的建立:继承就是在现有类的基础上建立新类的过程。
4、继承的关系:一个父类可以拥有多个子类,一个子类也可以成为其他类的基类。
5、继承的语法格式:[访问权限]class<派生类名>:<基类名>{//派生类定义}
1)子类可以使用父类的protected和public可见的变量和方法,就像这些变量和方法是自己定义的一样。
2)私有成员和方法其实已经被继承了,但是它们却不可以被访问,因为私有成员和方法只能被声明它们的类中才可访问,所以看上去像是没有被继承。
3)C# 中,如果类声明时没有声明父类,那么缺省为Object 类的子类。C#中的所有类都是System.Object类的子类。
4)C#中,子类只能继承一个父类,但一个基类可以有多个直接派生类。继承是可以传递的。
代码:class Car
{
int color;
int door;
int speed;
public void AddOil() { }
}
class TrashCar : Car{ }
class MyApp
{
static void Main()
{
TrashCar myCar = new TrashCar();
myCar.AddOil();
}
}
6、sealed:能够阻止某各类被其他类继承。
sealed class A
{
int test;
public void Sum(int i,int j)
{
int sum = i + j;
Console.WriteLine("I am A ,my sum ={0}",sum);
}
}
class B : A
{
public void Minus(int i,int j)
{
int minus = i - j;
Console.WriteLine("I am B ,my minus ={0}", minus);
this.Sum(3, 4); //编译器会报错
}
}
7、继承时的注意事项。
1)继承是可传递的:如果C从B中派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。
2)派生类应当是对基类的扩展:派生类可以添加新的成员,但不能除去已经继承的成员的定义。
3)构造函数和析构函数不能被继承:除此之外的其他成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类是否访问它们。
4)派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员:但是并不是派生类删除了这些成员,只是不嗯能够再访问这些成员。
5)派生类调用构造函数时,会先调用基类的构造函数。默认调用没有参数的构造函数。
6)用base关键字显式调用基类构造函数(如果基类定义了带有参数的构造函数,那么此构造函数必须被执行,且在派生类中实现该构造函数,此时我们可以使用base关键字)。
class Car
{
public Car(int i) { }
}
class TrashCar : Car
{
public TrashCar(int i):base(i) { }
}
8、继承的优点。
1)继承描述了“是什么种类”的关系。
2)派生类从基类继承属性和方法,实现了代码的重用。
3)派生类变得更专门化。