黑马程序员-------.NET知识基础(第五天)

来源:互联网 发布:网络维护与故障排除 编辑:程序博客网 时间:2024/04/30 03:48

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

  • 密封类

1、sealed 标记一个密封类,不能被子类继承

2、禁止子类重写父类的方法

特殊处理。、,防止别的类继承后造成混乱。商业问题

 

static void Main(string[] args)        {            Chinese c = new Chinese();            c.Name = "aaa";            Console.WriteLine(c.Name);            Console.ReadKey();        }        sealed class Person          {            public string Name            {                get;                set;            }                  }        class Chinese : Person //错误“密封类.Program.Chinese”: 无法从密封类型“密封类.Program.Person”派生          {        }
  •  抽象类、抽象方法

 

什么叫抽象类??
就是“只说不做的”,   不能被实例化(不能new)
比如动物都有一个eat和bark方法。但是由于每个动物的eat和bark是不一样的,所以父类中定义的方法是不需要被实例化的,这时就可以把它们定义成抽象类。由子类继承父类并重写这些方法。

1、抽象方法不能有任何的方法体。

2、抽象成员必须标记为abstract

3、抽象成员必须包含在抽象类中,不能写在一个实例中

4、并且抽象成员不能是私有的(private)

5、抽象类中可以包含实例成员

6、抽象类是不能被实例化的(抽象类的作用就是让继承)

7、子类继承抽象类后,必须重写父类中的所有抽象成员(除非子类也是一个抽象类,则可以不重写)

8、抽象类是有构造函数的,虽然不能被实例化

9、抽象类的目的:为了重写,即实现多态(代码重用)


-----------------------------------------------------------------------------

如果父类中的方法有默认实现,并且父类需要被实例化,这时可以考虑将父类定义成一个普通类,用虚方法来实现多态。

如果父类中的方法没有默认实现,父类也不需要被实例化,则可以将该类定义为抽象类

 

  • 用new关键字隐藏父类方法

哪些情况下会用到new关键字 写一个新方法

父类中有一个方法SayHello(),子类继承父类,其中也有一个SayHello(),那么如果这时不用父类中的方法,自己重写一个就要用到new关键字了

 

 

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

原创粉丝点击