能不能帮忙看一段代码
object obj1 = new Bird();
if (obj1 is Runnable)
{
Console.WriteLine("可以飞");
Runnable r2 = (Runnable)obj1;
r2.Walk(); Runnable r3 = obj1 as Runnable;
r3.Walk();
}
public interface Runnable
{
void Walk();
} public interface Flyable
{
void Fly();
}public class Bird : Flyable, Runnable//"实现接口",“继承类”
{ public void Fly()
{
Console.Write("小鸟飞");
} public void Walk()
{
Console.WriteLine("蹦跶的");
}
我想问的是为何Runnable r2 = (Runnable)obj1把obj1转换为Runnable的类型后调用walk方法却是调用的Bird类中的walk方法。
object obj1 = new Bird();
if (obj1 is Runnable)
{
Console.WriteLine("可以飞");
Runnable r2 = (Runnable)obj1;
r2.Walk(); Runnable r3 = obj1 as Runnable;
r3.Walk();
}
public interface Runnable
{
void Walk();
} public interface Flyable
{
void Fly();
}public class Bird : Flyable, Runnable//"实现接口",“继承类”
{ public void Fly()
{
Console.Write("小鸟飞");
} public void Walk()
{
Console.WriteLine("蹦跶的");
}
我想问的是为何Runnable r2 = (Runnable)obj1把obj1转换为Runnable的类型后调用walk方法却是调用的Bird类中的walk方法。
解决方案 »
- 如何从文本串ss中只提出数字字符串而不包含其它任何字符,正则式如何写
- 大家帮帮忙啊 用combox实现查询数据
- c# winform 数据存储问题(非数据库)
- 如何在窗体里实现浮动工具条?
- 高分求个dataGridView的列加载ColorDialog的例子,急用
- 请教一问题,up有分:)
- .net问题,请高手帮忙,高分回报。错误应用程序 w3wp.exe!!!!!!
- wpf databinding to xml
- 在C#.NET中如何将在 DataGrid (Winform下的) 双击过的行变为某个指定的颜色? -- 求助DataGrid高手们(急)
- IP地址变了,带来的问题!请教
- 连接数据库的语句应该放在那里
- c# listview
但是要实现接口,就必须实现其所有方法。当然就调用子类的方法类。
因为接口中的方法只有一个签名,根本没办法调用,所以要求子类必须全部实现。