继承之基类和派生类知识点和思考练习
知识点
在面向对象技术中,继承是指子类自动共享基类中定义的属性和方法,从而不必创建新类,便可在现有类的基础上添加新的属性和方法,实现了代码的重用,大大提供效率。
一、继承的应用
(一)基类和派生类
访问修饰符 class 派生类名称:基类名称
C#不支持多重继承,不允许从两个或更多的类中派生新类。派生类可以获取基类的所有非私有数据和行为,以及派生类为自己定义的所有其他数据和行为。
在C#中,System.Object类是所有类的根,如果在一个类的声明中未指定基类,则该类继承System.Object类。
在C#中,继承遵循以下规则:
1)继承可以传递。
2)继承由可扩展性,派生类可以增加自己的新成员,但不能删除已经继承的成员的定义
3)派生类可以通过声明同名新成员来隐藏继承自基类的成员,但被隐藏的基类的成员并没被删除,只是不能被派生类访问。
4)构造函数和析构函数不能被继承
思考练习
using System; namespace InheritName { public class Blog { private string blogName; private string blogAddress; public void SetValue() { Console.WriteLine("Please input blog's name!"); blogName = Console.ReadLine(); Console.WriteLine("Please input blog's address!"); blogAddress = Console.ReadLine(); } public void GetValue() { Console.WriteLine("The blog's name is {0}", this.blogName); Console.WriteLine("The blog's address is {0}", this.blogAddress); } } public class ItBlog : Blog { private string categoryName; public void SetCategory() { Console.WriteLine("Please input IT blog's category-name!"); categoryName = Console.ReadLine(); } public void GetCategory() { Console.WriteLine("The IT blog's category-name is {0}", categoryName); } } public class Program { static void Main() { ItBlog cnBlog = new ItBlog(); cnBlog.SetValue(); cnBlog.SetCategory(); cnBlog.GetValue(); cnBlog.GetCategory(); Console.ReadLine(); } } }