C#学习笔记(三)

C#学习笔记(三)
by heiyeluren


学习《Visual C#入门经典》学习笔记

1. 类的定义和继承

定义一个类使用class关键字:
class Class1
{
 // members
}

默认定义的类是只能本工程中的其他类和函数才能访问的,我们也可以使用显式的方式定义我们的类是私有的:
internal class Class1
{
 // members
}

加入我们要让别的工程也能够访问我们的类,我们就定义成公共的,别的工程也能访问了:
public class Class1
{
 // members
}

同时我们也能定义类为抽象类,只能继承,不能实例化:
public abstract class Class1
{
 // members
}

我们也能够定义类只能实例化,不能继承:

public sealed class Class1
{
 // members
}

一个类继承抽象类,那么所有抽象类的成员都将继承,另外,相应的访问方式必须是符合规则的,一个公共的基类,派生类能够是公共的,也

可以是私有的,一下定义合法:
public class MyBase
{
 // members
}

internal class MyClass : MyBase
{
 // members
}

但是如果是个私有的基类,那么派生类就只能是私有的,一下定义是非法的:
internal class MyBase
{
 // members
}

public class MyClass : MyBase
{
 // members
}

如果没有任何基类,那么是继承的就是基类System.Object,它在C#中是很核心的基类,基本上我们所有基类的根类就是它,。

同时我们的也能够继承接口,对接口的成员进行实现:
public class MyClass : IMyInterface
{
 // members
}

如果一个类继承的是接口的成员,那么所有接口的成员,都必须在类中进行实现,如果不想给接口的成员进行实现,可以使用“空”,就是函

数没有任何代码。

如果我们要同时继承基类和接口,那么基类就必须在接口前面,一下定义是非法的:
public class MyClass : IMyInterface, MyBase
{
 // members
}

正确的指定接口和基类的方法如下:
public class MyClass : MyBase, IMyInterface
{
 // members
}

当然,我们也能够同时指定多个接口:
public class MyClass : MyBase , IMyInterface, IMySecondInterface
{
 // members
}

 

2. 接口的定义和继承

声明一个接口,跟声明一个类差不多吧,使用interface为关键字:

interface IMyInterface
{
 // interface members
}

同样接口也有私有和公共访问的方式:

public interface IMyInterface
{
 // interface members
}

但是abstract和sealed不能用,因为接口本来就是用来继承的,但是无法实例化。

接口同样也能继承,而且接口不象类,只有一个基类,接口继承可以有多个接口:

public interface IMyInterface : IMyBaseInterface, IMyBaseInterface2
{
 // interface members
}

接口继承和System.Object的方式比较类似,就是通过接口的多台性来确定使用那个接口,接口不能实例化。

 


3. 类和接口的实现例子

// 定义命名空间
namespace TestApp
{
 // 定义一个抽象的基类
 public abstract class MyBase
 {
 }
 
 // 继承抽象基类
 internal class MyClass : MyBase
 {
 }

 // 定义接口1
 public interface IMyBaseInterface
 {
 }

 // 定义接口2
 internal interface IMyBaseInterface2
 {
 }

 // 同时继承接口1和接口2
 internal interface IMyBaseface: IMyBaseInterface, IMyBaseInterface2
 {
 }

 // 继承基类和接口1
 internal sealed class MyComplexClass : MyClass, IMyInterface
 {
 }

 // 定义可以执行的类
 class Class1
 {
  // 静态的Mian方法,一般就是应用程序的入口
  static void Main(string[] args)
  {
   MyComplexClass myObj = new MyComplexClass();
   Console.WriteLine(myObj.ToString());
  }
 }
}


基本上了解的就这么多了,呵呵~~~~下次再聊点别的!!

 

WriteTime: 2004-12-29 21:00

 




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值