多态:
如果子类和父类的方法重名 ,会报绿线,解决办法:
第一种方法,我们可以在子类的方法的访问修饰符后面加new
第二种方法,我们可以在子类的方法中重载(父类virtual 、子类override)
如果你用override,则无论调用的是A类还是B类中的TEST(),系统都会找到它实质类的TEST();
如果是用的New,则可以通过类型转换调用到基类的TEST();
下面是override的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用B中Test();系统会自动识别a1是B的实例
((A)b).Test();//与上面相同
下面是new的情况:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//调用A中Test();
b.Test();//调用B中Test();
a1.Test();//调用A中Test();
((A)b).Test();//与上面相同
多肽:隐藏基类方法,就是对象表现多种类型的能力
抽象类:不能够实例化
抽象方法只能写在抽象类中,且抽象方法不需要方法体;抽象类可以有非抽象成员
继承自抽象类的子类必须要重写父类中的抽象方法
Random r=new Random(); r.next(a,b)
常见的虚方法:ToString() 、Equals()
接口:Interface关键字
接口中可以有属性、方法
语法:
[修饰符]Interface 接口名
{
成员
}
C#中接口、类异同点:
不同点:
l 不能直接实例化接口
l 接口不包含方法的实现
l 接口可以多继承,类只能单继承
l 类定义可以再不同源文件间拆分
相同点:
l 接口、类和结构都可以从多个接口继承
l 接口类似抽象类:继承接口的任何非抽象类型都必须实现接口的所有成员
接口和类都可以包含事件、索引器、属性、方法
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net