C# 继承

面向对象编程的三大功能是继承、封装、多态,这里主要介绍继承功能。

当你创建一个新的类时,你可以使用这个新定义的类来继承一个现有的类,继承允许你在创建一个新的类时重写继承类中定义的成员,从而可以使用、扩展和修改。从基类继承的类称为“基类(父类)”,从基类继承的类称为“派生类(子类)”。

请注意,C# 仅支持单继承。即一个派生类只能继承一个基类,但继承是可以传递的。例如,如果 ClassC 继承自 ClassB,ClassB 继承自 ClassA,则 ClassC 继承自 ClassB 以及 ClassA 的所有成员。

1.基类和派生类

要使用一个类继承另一个类,必须使用冒号: ,如下所示。

【示例】通过一个例子来说明基类和派生类的实现。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        {
            Rectangle oblong = new Rectangle();
            oblong.setWidth(3);
            oblong.setHeight(4);
            int area = oblong.getArea();
            Console.WriteLine("長方形の面積は:{0}", area);
        }
    }
    // 基底クラス
    class Shape{
        protected int width, height;
        public void setWidth(int w){
            width = w;
        }
        public void setHeight(int h){
            height = h;
        }
    }
    // 派生クラス
    class Rectangle : Shape{
        public int getArea(){
            return width*height;
        }
    }
} 

操作的结果将是:

長方形の面積は: 12

2. 多重继承

与单继承不同,多重继承意味着一个类可以同时继承多个基类。 C#不支持多重继承,但可以使用接口来实现多重继承。例如:

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        {
            Rectangle oblong = new Rectangle();
            oblong.setWidth(3);
            oblong.setHeight(4);
            int area = oblong.getArea();
            int girth = oblong.getGirth();
            Console.WriteLine("長方形の面積は:{0}", area);
            Console.WriteLine("長方形の周囲は:{0}", girth);
        }
    }
    // 基底クラス
    class Shape{
        protected int width, height;
        public void setWidth(int w){
            width = w;
        }
        public void setHeight(int h){
            height = h;
        }
    }
    // インターフェイスを定義
    public interface Perimeter{
        int getGirth();
    }
    // 派生クラス
    class Rectangle : Shape, Perimeter{
        public int getArea(){
            return width*height;
        }
        public int getGirth(){
            return (width+height)*2;
        }
    }
} 

操作的结果将是:

長方形の面積は:12
長方形の周囲は:14

关于接口的相关知识稍后会详细介绍,这里大家都可以理解。

通俗易懂的《C#继承》讲解!您必须观看的 2 个最佳视频

C#プログラミング入門 2019 第13回 (3) クラスの継承
https://www.youtube.com/watch?v=cpqyjUH3Dj4
面向对象编程的三大功能是继承、封装、多态,这里主要介绍继承功能。

当你创建一个新的类时,你可以使用这个新定义的类来继承一个现有的类,继承允许你在创建一个新的类时重写继承类中定义的成员,从而可以使用、扩展和修改。从基类继承的类称为“基类(父类)”,从基类继承的类称为“派生类(子类)”。

请注意,C# 仅支持单继承。即一个派生类只能继承一个基类,但继承是可以传递的。例如,如果 ClassC 继承自 ClassB,ClassB 继承自 ClassA,则 ClassC 继承自 ClassB 以及 ClassA 的所有成员。

1.基类和派生类

要使用一个类继承另一个类,必须使用冒号: ,如下所示。

【示例】通过一个例子来说明基类和派生类的实现。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        {
            Rectangle oblong = new Rectangle();
            oblong.setWidth(3);
            oblong.setHeight(4);
            int area = oblong.getArea();
            Console.WriteLine("長方形の面積は:{0}", area);
        }
    }
    // 基底クラス
    class Shape{
        protected int width, height;
        public void setWidth(int w){
            width = w;
        }
        public void setHeight(int h){
            height = h;
        }
    }
    // 派生クラス
    class Rectangle : Shape{
        public int getArea(){
            return width*height;
        }
    }
} 

操作的结果将是:

長方形の面積は: 12

2. 多重继承

与单继承不同,多重继承意味着一个类可以同时继承多个基类。 C#不支持多重继承,但可以使用接口来实现多重继承。例如:

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        {
            Rectangle oblong = new Rectangle();
            oblong.setWidth(3);
            oblong.setHeight(4);
            int area = oblong.getArea();
            int girth = oblong.getGirth();
            Console.WriteLine("長方形の面積は:{0}", area);
            Console.WriteLine("長方形の周囲は:{0}", girth);
        }
    }
    // 基底クラス
    class Shape{
        protected int width, height;
        public void setWidth(int w){
            width = w;
        }
        public void setHeight(int h){
            height = h;
        }
    }
    // インターフェイスを定義
    public interface Perimeter{
        int getGirth();
    }
    // 派生クラス
    class Rectangle : Shape, Perimeter{
        public int getArea(){
            return width*height;
        }
        public int getGirth(){
            return (width+height)*2;
        }
    }
} 

操作的结果将是:

長方形の面積は:12
長方形の周囲は:14

关于接口的相关知识稍后会详细介绍,这里大家都可以理解。

通俗易懂的《C#继承》讲解!您必须观看的 2 个最佳视频

C#プログラミング入門 2019 第13回 (3) クラスの継承
https://www.youtube.com/watch?v=cpqyjUH3Dj4