sabato 6 settembre 2014

Ripasso di classi ed ereditarietà, in C++, C#, VB.NET e Java con la storiella del ristorante.

Introduciamo un po' il VB.NET.

Sempre con la scenetta del ristorante.

La vicenda era quella del cuoco che aveva un apprendista, e gli aveva trasmesso la capacità di cucinare la pasta con un condimento.
Ora l'apprendista sviluppa l'abilità di cucinare con due condimenti, che il maestro non ha.
E quindi abbiamo questa situazione:

In VB:
Module Module1
    Class Cuoco
        Public Sub Pasta(condimento As String)
            Console.WriteLine("io cucino pasta con " & condimento)
            Console.ReadLine()
        End Sub
    End Class

    Class Apprendista
        Inherits Cuoco
        Public Sub Pasta(condimento As String, condimento2 As String)
            Console.WriteLine("io cucino pasta con " & condimento & " e " & condimento2)
            Console.ReadLine()
        End Sub
    End Class

    Sub Main()
        Dim Mario As New Cuoco
        Dim Antonio As New Apprendista

        Mario.Pasta("sugo")
        Antonio.Pasta("aglio", "olio")
    End Sub

End Module
io cucino pasta con sugo

io cucino pasta con aglio e olio




In C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{

    class Cuoco
    {
        public void Pasta(string condimento)
        {
            Console.WriteLine("io cucino la pasta con " + condimento);
            Console.ReadLine();
        }
    }

    class Apprendista : Cuoco
    {
        public void Pasta(string condimento, string condimento2)
        {
            Console.WriteLine("io cucino la pasta con " + condimento + " e " + condimento2);
            Console.ReadLine();
        }
    }



    
    class Program
    {
        static void Main(string[] args)
        {
            Cuoco Mario = new Cuoco();
            Apprendista Antonio = new Apprendista();
            Mario.Pasta("sugo");
            Antonio.Pasta("aglio", "olio");
        }
    }
}
io cucino la pasta con sugo

io cucino la pasta con aglio e olio




In C++
#include "iostream"
using namespace std;

class Cuoco{
public:
 void Pasta(char * condimento){
  cout << "io cucino pasta con " << condimento << endl;
  getchar();
 }
};

class Apprendista: public Cuoco{
public:
 void Pasta(char * condimento, char * condimento2){
  cout << "io cucino pasta con " << condimento << " e " << condimento2 << endl;
  getchar();
 }
};

void main(){
 Cuoco * Mario = new Cuoco();
 Apprendista * Antonio = new Apprendista();

 Mario->Pasta("sugo");
 Antonio->Pasta("aglio","olio");
}
io cucino pasta con sugo

io cucino pasta con aglio e olio




In Java:
package javaapplication1;

class Cuoco{
    public void Pasta(String condimento){
        System.out.println("io cucino pasta con " + condimento);
    }
}

class Apprendista extends Cuoco{
    public void Pasta(String condimento, String condimento2){
        System.out.println("io cucino pasta con " + condimento + " e "+ condimento2);
    }
}

public class JavaApplication1 {


    
    public static void main(String[] args) {
        Cuoco Mario=new Cuoco();
        Apprendista Antonio=new Apprendista();
        Mario.Pasta("sugo");
        Antonio.Pasta("aglio", "olio");

    }
}
run:
io cucino pasta con sugo
io cucino pasta con aglio e olio
BUILD SUCCESSFUL (total time: 0 seconds)



Bene.
Da quando l'Apprendista ha elaborato il suo metodo di cucina con due condimenti non cucina più con un solo condimento: dal momento che i due stanno al ristorante insieme, il maestro Cuoco cucina a un condimento, mentre l'Apprendista Antonio cucina a due condimenti.

Vediamo l'ulteriore evoluzione della cosa...

Nessun commento:

Posta un commento