C\#계승 에 대한 간단 한 응용 코드 분석

4422 단어 C#이어받다
예 를 들 어 지금 은 일부 도형 이 있 는데 그들의 면적 을 계산 해 야 하고 면적 을 계산 하 는 방법 이 다 르 기 때문에 이렇게 할 수 있다.
추상 클래스 설명

//  
    abstract class Shape
    {
        //         
        public abstract double ComputerArea();

    }
성명 하위 클래스

//     Shape       
    class Circle : Shape
    {
        private double _radius;

        //    
        public Circle(double radius) => _radius = radius;

        //      
        public override double ComputerArea()
        {
            return _radius * _radius * Math.PI;
        }
    }

    //     Shape       
    class Rectangle : Shape
    {

        private double _width;

        private double _height;

        //    
        public Rectangle(double width, double height)
        {
            _width = width;
            _height = height;
        }
        //      
        public override double ComputerArea()
        {
            return _width * _height;
        }
    }

    //     Shape       
    class Triangle : Shape
    {

        private double _bottom;

        private double _height;

        //    
        public Triangle(double bottom, double height)
        {
            _bottom = bottom;
            _height = height;
        }
        //      
        public override double ComputerArea()
        {
            return _bottom * _height / 2;
        }
    }

선언 컴 퓨 팅 클래스

//   
    class Calculate
    {
        //          ,    
        public void Calc(Shape shape)
        {

            Console.WriteLine($"{shape.GetType().Name}   :{shape.ComputerArea()}");
        }
    }
테스트

class Program
    {
        static void Main(string[] args)
        {
            var circle = new Circle(5);
            var rect = new Rectangle(5, 10);
            var triangle = new Triangle(6, 8);

            var calc = new Calculate();

            calc.Calc(circle);
            calc.Calc(rect);
            calc.Calc(triangle);
        }
    }
실행 결과

실제로 이 방법 만 이 루어 진다 면 계승 인터페이스 도 가능 하 다!
인 스 턴 스 확장:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


/**
 *             :
 * java       java         , Jpro     ;
 * C#       C#         , Cpro      。
 *        WriteCode()  。
 *       , Programmer     。
 *           ,             。
 */
namespace inheritApplication
{
  //    (  )
  class Programmer
  {
    public string name = "     ";
  }
  //java    
  class Jpro 
  {
    public string name = "java   ";
    public string language = "  java     ";
  }
  //C    
  class Cpro 
  {
    public string name = "C#   ";
    public string language = "  C#     ";
  }
  //     
  class Pro : Programmer //    
  {
    public void WriteProgram(Jpro program) //  java    
    {
      Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
    }
    public void WriteProgram(Cpro program)
    {
      Console.WriteLine("" + program.name + ":" + name + "," + program.language + "");
    }
  }
  //   
  class Program
  {
    static void Main(string[] args)
    {
      Pro p = new Pro();
      Jpro p1 = new Jpro();
      p.WriteProgram(p1);
      Cpro p2 = new Cpro();
      p.WriteProgram(p2);
      Console.ReadKey();
    }
  }
}
C\#계승 에 관 한 간단 한 응용 코드 분석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C\#계승 에 관 한 간단 한 응용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기