C# 中关于接口实现、显示实现接口以及继承
2017-08-29 09:30
309 查看
接口以及抽象类、实现类
public interface IA
{
void H();
}
public interface IB
{
void H();
}
public abstract class D
{
public abstract void H();
}
public class C : D,IA, IB
{
void IA.H()
{
Console.WriteLine("all a.h");
}
public override void H()//T
{
Console.WriteLine("all b.h");
}
}
复制代码
如果类C继承了抽象类D,那么在类C中可以使用override关键字,接口IB调用的也是被覆盖的方法H(T位置)【可以理解T位置的方法H同事覆盖了抽象类D中的方法H和实现了接口IB中的方法H】。
如果类C不继承抽象类D,那么类C中不能使用override关键字,override关键字只能在继承抽象类的情况下使用(个人使用之后感觉是这样的)。
一开始的代码是这样的:
public interface IA
{
void H();
}
public interface IB
{
void H();
}
public abstract class D
{
public abstract void H();
}
public class C : D,IA, IB
{
public override void H()
{
Console.WriteLine("all h");
}
void IA.H()
{
Console.WriteLine("all a.h");
}
void IB.H()
{
Console.WriteLine("all b.h");
}
}
复制代码
显示实现接口。显示实现接口时不能在覆盖的方法或字段上使用访问权限关键字【private、protected、public等】
在不继承抽象类D的情况下是这样的:
public class C : IA, IB
{
public void H()//U
{
Console.WriteLine("all h");
}
void IA.H()
{
Console.WriteLine("all a.h");
}
void IB.H()
{
Console.WriteLine("all b.h");
}
}
复制代码
调用时,接口IA的对象只能访问IA.H(),接口IB只能访问IB.H(),访问不到U位置的方法。只能在实例化类C的情况下才能访问到U位置的方法H
调用的代码:
class Program
{
static void Main(string[] args)
{
IA a = new C();
IB b = new C();
a.H();
b.H();
D d = new C();
d.H();
C c = new C();
c.H();
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
复制代码
public interface IA
{
void H();
}
public interface IB
{
void H();
}
public abstract class D
{
public abstract void H();
}
public class C : D,IA, IB
{
void IA.H()
{
Console.WriteLine("all a.h");
}
public override void H()//T
{
Console.WriteLine("all b.h");
}
}
复制代码
如果类C继承了抽象类D,那么在类C中可以使用override关键字,接口IB调用的也是被覆盖的方法H(T位置)【可以理解T位置的方法H同事覆盖了抽象类D中的方法H和实现了接口IB中的方法H】。
如果类C不继承抽象类D,那么类C中不能使用override关键字,override关键字只能在继承抽象类的情况下使用(个人使用之后感觉是这样的)。
一开始的代码是这样的:
public interface IA
{
void H();
}
public interface IB
{
void H();
}
public abstract class D
{
public abstract void H();
}
public class C : D,IA, IB
{
public override void H()
{
Console.WriteLine("all h");
}
void IA.H()
{
Console.WriteLine("all a.h");
}
void IB.H()
{
Console.WriteLine("all b.h");
}
}
复制代码
显示实现接口。显示实现接口时不能在覆盖的方法或字段上使用访问权限关键字【private、protected、public等】
在不继承抽象类D的情况下是这样的:
public class C : IA, IB
{
public void H()//U
{
Console.WriteLine("all h");
}
void IA.H()
{
Console.WriteLine("all a.h");
}
void IB.H()
{
Console.WriteLine("all b.h");
}
}
复制代码
调用时,接口IA的对象只能访问IA.H(),接口IB只能访问IB.H(),访问不到U位置的方法。只能在实例化类C的情况下才能访问到U位置的方法H
调用的代码:
class Program
{
static void Main(string[] args)
{
IA a = new C();
IB b = new C();
a.H();
b.H();
D d = new C();
d.H();
C c = new C();
c.H();
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
复制代码
相关文章推荐
- C# 中关于接口实现、显示实现接口以及继承
- C#中基类、派生类以及使用接口来实现多重继承
- C# 显示继承接口 -- 由ImageButton:IButtonControl 想到的
- 关于Java使用接口实现多重继承
- 郁闷了半天,原来是这个问题:关于C#中关于图片保存到数据库以及将数据库中的图片显示到PictureBox。
- 关于记事本的“查找下一个”以及“向上向下”,C#.net的一个简单实现
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- C#+AE实现类似IDentify功能及对高亮显示相关接口的总结
- C#中,接口的隐式实现和显示实现
- Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
- c# 显示接口实现
- 关于js的接口和 继承实现的代码例子
- c#利用接口实现多重继承
- COM接口继承IUnkonwn接口,关于IUnkonwn里面函数实现中用到引用计数的总结
- 关于javascript中变量是如何存储调用、以及函数的继承实现
- VS2005的类设计器(Class Designer)中,如果显示让类继承接口,而不是实现接口?
- C# override,new 的区别+C# 接口的显示实现和隐示实现
- 关于接口的实现和继承的问题
- 改进C#代码之22:通过定义并实现接口替代继承
- 在C#开发BHO时,关于IObjectWithsite接口实现问题