`

C# 的面向对象特性之继承 还有多态

 
阅读更多
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// C# 的继承是为实现创建一个新类,同时重用,扩展,修改已有的另一个类里的一种方式。
/// 同时它应该遵循 Is-A 原则。还重点介绍了实现继承的几个关键字。
/// override 与 new 的区别
/// </summary>
namespace lesson9
{
    class Program
    {
        static void Main(string[] args)
        {
            Dog dog = new Dog();//实例化的时候先会调用父类的构造函数
            dog.Age = 10;
            dog.Bite();
            dog.GetAge();
            dog.BiteMan();

            Animal oldDog = new Dog();//隐式的类型转换 实例化一个animal 类型的 dog对象
            oldDog.Bite();//overwrite 是重写了父类的方法
            oldDog.BiteMan();//new 出来 子类对父类影藏 父类中的biteman并没有重写
            ((Dog)oldDog).BiteMan();
            Console.ReadLine();
        }
    }

    class Animal{
     public Animal()
        {
            Console.WriteLine("Animal constructor");
        }
    public int Age
    {
        get;
        set;
    }
        public virtual void Bite()//virtual 意思在与继承中可以重写
        {
            Console.WriteLine("Animal bite");
        }

        public virtual void GetAge()
        {
            Console.WriteLine(Age);
        }

        public void BiteMan()
        {
            Console.WriteLine("Animal bite man");
        }


    }

    sealed class Dog:Animal //这里的Dog 前面加了sealed就无法被继承
    {
        public Dog()
        {
            Console.WriteLine("Dog constructor");
        }
        public override void Bite()
        {
            Console.WriteLine("Dog bite");
        }

        public new void BiteMan()//把父类的方法,在子类中影藏
        {
            Console.WriteLine("Dog bite man");
        }
    }


}

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// 1.C#的静态多态 在编译时就已经实现了多态
///2.C#的动态多态 在运行时实现的多态
/// </summary>
namespace lesson10
{
    class Program
    {
        static void Main(string[] args)
        {
            PrintHello();
            PrintHello("world");//这里是方法的多态 重载
            Complex c1 = new Complex();
            Complex c2 = new Complex();
            c1.Number = 2;
            c2.Number = 3;
            Console.WriteLine((c1 + c2).Number);

            Human human1 = new Man();//这里实现了动态的重载
            Human human2 = new Woman();
            human1.CleanRoom();
            human2.CleanRoom();
            Console.WriteLine(c2);
            //some logic
            //Human h=new Human();
            //if(he is man)
            //h.CleanRoomSlowly();
            //else if (h is woman)
            //h.cleanroomqucik();
            //some logic


            Console.ReadLine();
        }

        public static void PrintHello()
        {
            Console.WriteLine("Hello");
        }

        public static void PrintHello(string toWho)
        {
            Console.WriteLine("Hello {0}", toWho);
        }
        //运算符的重载 对加号的重载
        class Complex
        {
            public int Number { get; set; }

            public static Complex operator +(Complex c1, Complex c2)
            {
                Complex c = new Complex();
                c.Number = c1.Number + c2.Number;
                return c;
            }
            //实现了对toString 方法的重写
            public override string ToString()
            {
                return Number.ToString();
            }
        }

        class Human{
    public virtual void CleanRoom()
        {
            Console.WriteLine("Human clean room");
        }
    }

        class Man:Human
        {
            public override void CleanRoom()
            {
                Console.WriteLine("man Clean slowly");
            }
        }

        class Woman : Human
        {
            public override void CleanRoom()
            {
                Console.WriteLine("women Clean quaikly");
            }
        }
}
    

}

 

分享到:
评论

相关推荐

    c#类与对象的继承与多态——图形间的继承关系

    总结来说,本主题涉及了C#中的面向对象编程,主要集中在继承和多态这两个关键特性。通过Shape基类和其子类的实现,我们可以看到如何创建和使用具有不同特性的图形对象。同时,多态性的运用使得我们可以以统一的方式...

    C#实验 事件、继承和多态

    在C#编程语言中,事件、继承和多态是三个非常关键的概念,它们构成了面向对象编程的核心要素。在这个实验中,我们将深入理解这三个概念,并通过实际的编程实践来加深印象。 首先,我们来探讨事件(Event)。事件是...

    Lesson_面向对象继承,多态,接口_实训

    在这个"Lesson_面向对象继承,多态,接口_实训"中,我们将深入探讨这三个关键概念:继承、多态和接口,并通过实践来加深理解。 首先,让我们来看看**继承**。继承是面向对象编程的一个重要特性,它允许一个类(子类...

    北大青鸟C#第六章 初始继承和多态参考答案.zip

    在C#编程语言中,面向对象编程(Object-Oriented Programming,简称OOP)是核心概念之一,它基于类和对象的概念,实现了代码的复用和模块化设计。"北大青鸟C#第六章 初始继承和多态参考答案.zip"这个压缩包文件包含...

    C#课件教案PPT继承和多态共17页.pdf.zip

    标题中的"C#课件教案PPT继承和多态...总之,C#的继承和多态是理解面向对象编程的关键,通过深入学习和实践,开发者可以构建出更强大、更灵活的软件系统。这份PPT课件将为初学者或寻求深化理解的开发者提供宝贵的资源。

    C#关于继承与多态的简单练习源码

    在C#编程语言中,继承和多态是面向...总之,继承和多态是C#中实现面向对象编程的关键特性,它们为代码的扩展和维护提供了强大的支持。通过理解并熟练运用这两个概念,开发者可以编写出更加灵活、易于维护的软件系统。

    C#面向对象编程期末参考题

    【描述】提到“期末开卷参考题”,暗示我们将探讨一些学生在学习过程中可能遇到的实际问题或考试题目,这些题目可能会涵盖C#面向对象编程的基本原理、类与对象、继承、封装、多态等关键概念。 在C#中,面向对象编程...

    C#员工工资管理(继承+多态).zip

    在C#编程中,继承和多态是面向对象编程的核心概念,它们在设计复杂的系统时起着至关重要的作用。在这个“C#员工工资管理”项目中,开发者利用这两种特性来构建一个灵活且可扩展的员工薪资计算系统。下面将详细阐述这...

    用一个示例来说明C#中的继承、封装和多态

    在C#编程语言中,继承、封装和多态是面向对象编程(OOP)的三大核心概念。这些特性使得代码更加灵活、可复用且易于维护。下面将通过一个具体的示例来阐述这三个概念。 首先,让我们理解一下这三个概念的基本含义: ...

    C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例

    C# 一个完整的类 面向对象三大特性 封装 继承 多态 的示例 封装通过私有字段和公共方法来实现对数据的访问控制。 继承通过派生类Student继承自Person类,获得了Person类的所有属性和方法,并在此基础上扩展了自己的...

    C#控制台应用程序(封装,继承,多态)

    在C#编程语言中,控制台应用程序是学习和实践编程概念的理想平台,特别是对于封装、继承和多态这些面向对象编程的基本原则。本项目旨在通过一个实际的控制台应用实例,帮助开发者深入理解这些概念。 封装是面向对象...

    视频教程-C#面向对象基础01

    【视频教程-C#面向对象基础01】是一个针对初学者的C#编程教程,主要讲解了C#语言中的面向对象编程基础知识。在这个教程中,讲师苏坤来自知名的教育机构传智播客,他将深入浅出地介绍面向对象编程的核心概念,帮助...

    C#面向对象练习进阶

    在“C#面向对象练习进阶”这个资料集中,你可能会遇到各种实际的编程练习,如创建类和对象、使用继承和多态设计类结构、实现接口以及处理委托和事件等。通过解决这些练习,你将能够巩固理论知识,提高在实际项目中的...

    关于C#继承多态的应用项目

    在C#编程语言中,继承和多态是面向对象编程的两大核心概念,它们极大地增强了代码的可重用性、灵活性和扩展性。本项目旨在通过实际操作来深入理解和应用这两个概念。 首先,让我们理解“继承”。继承允许一个类...

    动物练习.NET面向对象继承多态

    在.NET框架中,面向对象编程(Object-Oriented Programming,OOP)是一种强大的软件开发范式,它基于类和对象的概念,以及封装、继承、多态等核心特性。本实践项目名为“动物练习”,旨在通过模拟不同类型的动物来...

    继承和多态笔记.docx

    ### 继承与多态知识点总结 ...总结而言,接口和抽象类都是为了提高代码的可重用性和可扩展性而设计的,它们共同支撑起了Java面向对象编程中的多态特性。正确理解和使用这些概念对于开发高质量的Java应用程序至关重要。

    C#做的计算器,利用类的封装继承多态。。

    在C#编程中,"C#做的计算器,利用类的封装继承多态"是一个典型的面向对象编程示例。这个计算器项目展示了如何应用C#的核心概念,如类、封装、继承和多态,来构建一个实际的软件应用。下面将详细解释这些知识点。 1....

    c#面向对象编程课件c#面向对象编程课件

    C#面向对象编程主要包括三个主要概念:封装、继承和多态。 **封装** 是面向对象编程的基础,它将数据和方法绑定在一起,隐藏内部实现细节,只对外提供公共接口。在C#中,我们通过访问修饰符(如public、private、...

    c#面向对象编程课件2 多态

    总的来说,多态性是C#面向对象编程中的关键特性,它允许我们以统一的方式处理不同类型的对象,通过虚方法、抽象方法和接口提供了实现多态的多种途径。理解和熟练运用多态性,将有助于编写出更高效、更具弹性的代码。

Global site tag (gtag.js) - Google Analytics