interface用来声明接口 1.只提供方法的规则约束,不提供方法的主体。 例: public interface IPerson { void getName();//不包含主体方法 } 2.方法不能用public abstract等修饰,无字段变量,无构造函数。 3.方法可包含参数 如 public interface IPerson { void getAge(string s); } 例1 public interface IPerson { IPerson();//错误 string name;//错误 public void getIDcard();//错误 void getName();//正确 void getAge(string s);//正确 } 实现interface的类 1.与继承类的格式一致,如 public class Chinese:IPerson{} 2.必须实现interface中的各个方法 例2,继承例1 public class Chinese:IPerson { public Chinese(){}//添加构造函数 public void getName(){}//实现getName() public void getAge(){}//实现getAge() }
abstract用来声明抽象类、抽象方法 1.抽象方法所在类必须为抽象类。 2.抽象类不能直接实例化,必须由其派生类实现。 3.抽象方法不包含方法主体,必须由派生类以override方式实现此方法,这点跟interface中的方法类似 如 public abstract void getPrice(); //抽象方法,不含主体 public class JavaBook:Book 测试如下: virtual标记方法为虚方法 abstract与virtual: 方法重写时都使用 override 关键字
overrid和new //override不能重写非虚方法或静态方法。 //下面通过例子来看看重写与隐藏的区别,从而进一步理解虚成员的作用。 public class MyDerivedClass:MyBaseClass //其中重写方法将替换基类中的执行代码,这样下面的代码就将使用替换代码, MyDerivedClass myObj=new MyDerivedClass(); Derived imp //另外,还可以使用下面的代码隐藏基类方法: public class MyDerivedClass:MyBaseClass |
我理解c#中的interface abstract virtual override和new
最新推荐文章于 2020-03-12 21:11:00 发布
我理解c#中的interface abstract virtual override和new
2008-01-03 14:19