logoЗаметки на клавиатуре


Родители C#

Категории Uncategorized, опубликовал evilbot January 12th, 2006

    Когда в недрах Microsoft разрабатывали
язык C#, то там думали о программистах на C/C++ и стрались сделать
новый язык максимально приближенным к C++, а не к Java. В конце концов
у них получилось это сделать не только на уровне синтаксиса, но и на
уровне исполнения.
    Возьмём одну из программ, которую
предлагают
на собеседовании в Google, на C++ она выглядит так:

#include <iostream>
using namespace std;

class A
{
public:
    A()
    {
       
PrintStuff();
    }

    virtual void PrintStuff()
    {
       
cout<<“A!!!”<<endl;
    }
};

class B : public A
{
public:
    B()
    {
       
PrintStuff();
    }

    virtual void PrintStuff()
    {
       
cout<<“B!!!”<<endl;
    }

};

 int main(int argc, char* argv[])
{
    B b;
    return 0;
}

На C# она выглядет немного иначе, а именно так:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleTest
{
    class Program
    {
        static
void Main(string[] args)
        {
       
    B bb = new B();
        }
    }
    class A
    {
        public A()
        {
       
    PrintStuff();
        }
        public
virtual void PrintStuff()
        {
       
    Console.WriteLine(“A!!!”);
        }
    }
    class B : A
    {
        public B()
        {
       
    PrintStuff();
        }
        public
virtual void PrintStuff()
        {
       
    Console.WriteLine(“B!!!”);
        }
    };
}

Ну а на Java эта же программы выглядит так:

public class programm
{
    public static void main(String[] argv)
    {
        B b = new
B();
    }
}

class A
{
    A()
    {
       
printStuff();
    }

    public void printStuff()
    {
       
System.out.println(“A!!!”);
    }
}

class B extends A
{
    B()
    {
       
printStuff();
    }

    public void printStuff()
    {
       
System.out.println(“B!!!”);
    }

Ну а в результате выполнения первых двух программ мы получаем такой
вывод на экран:

A!!!
B!!!

Ну а в результате выполнения третьей программы мы получаем такой
вывод на экран:

B!!!
B!!!

В принципе выше написаный текст не имеет очень большого смысла, просто
он показывает что хоть C# и считается языком, выросшим из Java на самом
деле таковым не является. На самом деле C# – это дольно успешная
попытка избавиться от проблем C++ и одновременно не лишиться его
достоинств.

Оставить комментарий