using System;
using System.Collections.Generic;
using System.Text;
//通过接口实现多重继承
namespace interfaceDemo
{
class Person {//定义实体类
internal int age;
internal string name;
bool isMale;
public Person(int age, string name, bool isMale) {//构造方法
this.age = age;
this.name = name;
this.isMale = isMale;
}
public bool IsMale() {
return this.isMale;
}
}
interface Teacher//定义接口
{
string GetSchool();//接口里的方法都是抽象的
string GetSubject();
}
interface Doctor
{
string GetHospital();
double GetSalary();
}
class PersonA : Person, Teacher//继承person类、实现Teacher接口
{
public PersonA(int age, string name, bool isMale)
: base(age, name, isMale)//派生类调用积累的构造方法
{
}
public string GetSchool()//实现接口的抽象方法
{
return "清华大学";
}
public string GetSubject()//实现接口的抽象方法
{
return "经济学";
}
}
class PersonB : Person, Teacher, Doctor//继承person类,同时实现两个接口
{
public PersonB(int age, string name, bool isMale)
: base(age, name, isMale)
{
}
public string GetSchool()
{
return "北京大学";
}
public string GetSubject()//实现接口的抽象方法
{
return "计算机";
}
public string GetHospital() {
return "北京附属医院";
}
public double GetSalary() {
return 2000;
}
}
class TestInterface//测试类
{
static void Main(string[] args) {
PersonA p1 = new PersonA(40, "张三", true);
string gender = "";
if (p1.IsMale())
{
gender = "男";
}
else {
gender = "女";
}
Console.WriteLine("{0},{1},{2}岁,{3}教师,专业是{4}", p1.name, gender, p1.age,
p1.GetSchool(), p1.GetSubject());//调用接口已经实现的方法
PersonB p2 = new PersonB(55, "赵六", false);
if (p2.IsMale())
{
gender = "男";
}
else
{
gender = "女";
}
Console.WriteLine("{0},{1},{2}岁,{3}教师,专业是{4},\n同时也是{5}医生,工资为{6}",
p2.name, gender, p2.age, p2.GetSchool(), p2.GetSubject(),p2.GetHospital(),p2.GetSalary());
Console.ReadLine();
}
}
}
分享到:
相关推荐
一个典型的C#接口定义如下所示: ```csharp interface IMyExample { string this[int index] { get; set; } event EventHandler Even; void Find(int value); string Point { get; set; } } public delegate ...
C#不支持多重继承(即一个类不能继承多个类),但它支持多重接口实现。这意味着一个类可以实现多个接口,如: ```csharp interface IAnotherInterface { void AnotherMethod(); } class DerivedClass : ...
总结来说,C#接口是一种重要的编程构造,它定义了一组方法、属性、事件和索引器的协议,类或结构通过实现接口来承诺实现这些成员。接口支持多重继承和多重实现,这增强了编程的灵活性和复用性。接口作为组件技术的一...
在C#中,一个类可以实现多个接口,这使得类能够拥有多种行为,实现了多重继承的效果。例如: ```csharp public class AnotherClass : IMyInterface, IAnotherInterface ``` 这里的`AnotherClass`同时实现了`...
接口更轻量级,可以实现多重继承,而抽象类可以提供部分实现,但只能单继承。根据具体需求选择合适的设计方式至关重要。 总之,“基于C#的接口基础教程”会涵盖这些基础知识,并可能包括接口的高级用法,如事件处理...
- 多重继承:C# 不支持类的多重继承,但可以通过接口实现多态性,类可以实现多个接口。 - 定义契约:接口定义了一组必须遵循的规则,确保任何实现它的类都有相同的行为。 - 提高代码可读性和可维护性:通过接口,...
2. **多重继承**:虽然C#不支持类的多重继承,但它允许一个类实现多个接口,这里可能会展示如何利用接口模拟多重继承的效果。 3. **接口实现**:展示了如何定义接口并由类实现这些接口,以及如何在代码中调用接口...
- **接口与多重继承**:虽然C#不支持多重继承,但可通过实现多个接口来达到类似效果。 3. **示例代码** ```csharp public class ParentClass { public ParentClass() { Console.WriteLine("父类构造函数。"); }...
在C#中,可以实现单一继承,即一个类只能从一个基类继承,但可以通过接口实现多重继承的效果。例如,一个`Vehicle`类可以派生出`Car`和`Bike`,而`Car`和`Bike`可能需要实现共同的接口`IVehicle`: ```csharp ...
C++支持多重继承,即一个派生类可以从多个基类继承,而C#则限制为单一继承,即一个派生类只能从一个基类继承。 2. C++中的继承: 在C++中,类的继承使用`class DerivedClass : access_specifier BaseClass`语法声明...
此外,接口还可以用于模拟多继承,因为C#不支持类的多重继承,但可以实现多个接口。 接口测试是确保类正确实现接口所定义行为的过程。在"C#接口应用小程序"中,可能包含了测试用例来验证类是否符合接口规范。通常,...
但要注意的是,C#不支持多重继承,即一个类不能直接从两个或更多个类继承。不过,通过接口,我们可以实现类似的效果。 C#的继承还涉及到方法的覆盖(Override)和隐藏(New)。当子类需要修改父类的方法实现时,...
C#中的接口支持多重继承,一个类可以实现多个接口。例如: ```csharp interface ISecondInterface { void Method2(); } class AnotherClass : IMyInterface, ISecondInterface { // 实现IMyInterface和...
C#不支持多重实现继承,即一个类不能从多个类继承,以避免代码的复杂性和潜在问题。然而,C#允许类同时继承一个类和多个接口,这使得设计更加灵活。每个C#类(除了Object类)都有一个基类和任意多的基接口,而System...
类可以实现多个接口,从而实现多重继承的效果: ```csharp public class MyClass : Interface1, Interface2 ``` 7. **多态性** 多态性是面向对象的三大特性之一,允许使用父类型引用指向子类型实例。C#通过方法...
在C#编程语言中,接口(Interface)是一个非常...通过实现接口,类可以具备多种行为,而无需直接继承多个类(C#不支持多重继承)。这个简单的例子展示了如何定义、实现和使用接口,希望对初学者理解C#接口有所帮助。
这意味着,通过接口可以实现类似于多重继承的效果。 3. **成员访问级别**:接口中的成员默认为公共访问级别,而在抽象类中可以定义不同访问级别的成员。 4. **方法实现**:如果在接口中添加新的方法,所有实现该...
### C#接口基础教程知识点详解 #### 接口概述 - **定义**:接口(Interface)是一种编程概念,用于定义程序间的约定。它为类或结构体提供了必须遵循的规范,确保实现接口的对象具备相同的特性。 - **实现**:任何...
此外,接口在实现多继承的场景下特别有用,因为C#不支持类之间的多重继承,但可以通过实现多个接口来模拟这一行为。例如,一个类可以同时实现`IMyInterface1`和`IMyInterface2`。 最后,`interface`文件夹中的例子...
接口也可以用于实现多继承,因为C#不支持多重继承(一个类只能继承一个父类),但可以通过实现多个接口来达到类似的效果。 在.NET框架中,这些概念被广泛应用于各种场景,如数据访问、Windows Forms和WPF应用程序、...