`
phoebird
  • 浏览: 117713 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

C# 通过接口实现多重继承

    博客分类:
  • C#
阅读更多
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语言接口与实现C#的接口慨述[可以让你了解它的结构]

    一个典型的C#接口定义如下所示: ```csharp interface IMyExample { string this[int index] { get; set; } event EventHandler Even; void Find(int value); string Point { get; set; } } public delegate ...

    利用c#编写的简单的接口实现

    C#不支持多重继承(即一个类不能继承多个类),但它支持多重接口实现。这意味着一个类可以实现多个接口,如: ```csharp interface IAnotherInterface { void AnotherMethod(); } class DerivedClass : ...

    c# 接口详解

    总结来说,C#接口是一种重要的编程构造,它定义了一组方法、属性、事件和索引器的协议,类或结构通过实现接口来承诺实现这些成员。接口支持多重继承和多重实现,这增强了编程的灵活性和复用性。接口作为组件技术的一...

    c#接口调用方法展示

    在C#中,一个类可以实现多个接口,这使得类能够拥有多种行为,实现了多重继承的效果。例如: ```csharp public class AnotherClass : IMyInterface, IAnotherInterface ``` 这里的`AnotherClass`同时实现了`...

    基于C#的接口基础教程

    接口更轻量级,可以实现多重继承,而抽象类可以提供部分实现,但只能单继承。根据具体需求选择合适的设计方式至关重要。 总之,“基于C#的接口基础教程”会涵盖这些基础知识,并可能包括接口的高级用法,如事件处理...

    c#接口demo

    - 多重继承:C# 不支持类的多重继承,但可以通过接口实现多态性,类可以实现多个接口。 - 定义契约:接口定义了一组必须遵循的规则,确保任何实现它的类都有相同的行为。 - 提高代码可读性和可维护性:通过接口,...

    11.5_ 接口与继承的实例,VS2008源代码

    2. **多重继承**:虽然C#不支持类的多重继承,但它允许一个类实现多个接口,这里可能会展示如何利用接口模拟多重继承的效果。 3. **接口实现**:展示了如何定义接口并由类实现这些接口,以及如何在代码中调用接口...

    关于c#继承机制的详细概述

    - **接口与多重继承**:虽然C#不支持多重继承,但可通过实现多个接口来达到类似效果。 3. **示例代码** ```csharp public class ParentClass { public ParentClass() { Console.WriteLine("父类构造函数。"); }...

    C#继承代码学习

    在C#中,可以实现单一继承,即一个类只能从一个基类继承,但可以通过接口实现多重继承的效果。例如,一个`Vehicle`类可以派生出`Car`和`Bike`,而`Car`和`Bike`可能需要实现共同的接口`IVehicle`: ```csharp ...

    C#与C++类的继承机制的对比分析.doc

    C++支持多重继承,即一个派生类可以从多个基类继承,而C#则限制为单一继承,即一个派生类只能从一个基类继承。 2. C++中的继承: 在C++中,类的继承使用`class DerivedClass : access_specifier BaseClass`语法声明...

    C#接口应用小程序

    此外,接口还可以用于模拟多继承,因为C#不支持类的多重继承,但可以实现多个接口。 接口测试是确保类正确实现接口所定义行为的过程。在"C#接口应用小程序"中,可能包含了测试用例来验证类是否符合接口规范。通常,...

    C#继承知识点

    但要注意的是,C#不支持多重继承,即一个类不能直接从两个或更多个类继承。不过,通过接口,我们可以实现类似的效果。 C#的继承还涉及到方法的覆盖(Override)和隐藏(New)。当子类需要修改父类的方法实现时,...

    c#接口实例

    C#中的接口支持多重继承,一个类可以实现多个接口。例如: ```csharp interface ISecondInterface { void Method2(); } class AnotherClass : IMyInterface, ISecondInterface { // 实现IMyInterface和...

    C#继承的应用.ppt

    C#不支持多重实现继承,即一个类不能从多个类继承,以避免代码的复杂性和潜在问题。然而,C#允许类同时继承一个类和多个接口,这使得设计更加灵活。每个C#类(除了Object类)都有一个基类和任意多的基接口,而System...

    深入剖析C#继承机制

    类可以实现多个接口,从而实现多重继承的效果: ```csharp public class MyClass : Interface1, Interface2 ``` 7. **多态性** 多态性是面向对象的三大特性之一,允许使用父类型引用指向子类型实例。C#通过方法...

    C#接口使用的一个简单易懂的例子

    在C#编程语言中,接口(Interface)是一个非常...通过实现接口,类可以具备多种行为,而无需直接继承多个类(C#不支持多重继承)。这个简单的例子展示了如何定义、实现和使用接口,希望对初学者理解C#接口有所帮助。

    C#接口(Interface)用法分析.pdf

    这意味着,通过接口可以实现类似于多重继承的效果。 3. **成员访问级别**:接口中的成员默认为公共访问级别,而在抽象类中可以定义不同访问级别的成员。 4. **方法实现**:如果在接口中添加新的方法,所有实现该...

    C#接口基础教程 C#接口基础教程

    ### C#接口基础教程知识点详解 #### 接口概述 - **定义**:接口(Interface)是一种编程概念,用于定义程序间的约定。它为类或结构体提供了必须遵循的规范,确保实现接口的对象具备相同的特性。 - **实现**:任何...

    学习c#接口的典型例子

    此外,接口在实现多继承的场景下特别有用,因为C#不支持类之间的多重继承,但可以通过实现多个接口来模拟这一行为。例如,一个类可以同时实现`IMyInterface1`和`IMyInterface2`。 最后,`interface`文件夹中的例子...

    继承 多态 接口 C# .net教程讲解

    接口也可以用于实现多继承,因为C#不支持多重继承(一个类只能继承一个父类),但可以通过实现多个接口来达到类似的效果。 在.NET框架中,这些概念被广泛应用于各种场景,如数据访问、Windows Forms和WPF应用程序、...

Global site tag (gtag.js) - Google Analytics