Egli non è più disponibile per essere istanziato, ossia per svolgere turni al ristorante, ma continua a dirigere il ristorante stesso.
Egli lascia completa libertà su tutto, ma esige che chi lavora per lui faccia il pollo col rosmarino e non in modo diverso.
In C++:
#include "iostream" using namespace std; class Cuoco{ public: void Pollo(){ cout << "io cucino il pollo con rosmarino" << endl; getchar(); } virtual void Pasta(char * condimento)=0; }; class Apprendista: public Cuoco{ public: void Pasta(char * condimento){ cout << "io cucino con la pentola a pressione pasta e " << condimento << endl; getchar(); } void Pasta(char * condimento, char * condimento2){ cout << "io cucino con la pentola a pressione pasta e " << condimento << " e " << condimento2 << endl; getchar(); } }; class Apprendista2: public Cuoco{ public: void Pasta(char * condimento){ cout << "io cucino col forno a legna pasta e " << condimento << endl; getchar(); } void Pasta(char * condimento, char * condimento2){ cout << "io cucino con la pentola a pressione pasta e " << condimento << " e " << condimento2 << endl; getchar(); } }; void main(){ Apprendista * Antonio=new Apprendista(); Apprendista2 * Giuseppe=new Apprendista2(); Antonio->Pasta("sugo"); Antonio->Pasta("tonno", "formaggio"); Antonio->Pollo(); Giuseppe->Pasta("sugo"); Giuseppe->Pasta("aglio", "olio"); Giuseppe->Pollo(); }
io cucino con la pentola a pressione pasta e sugo io cucino con la pentola a pressione pasta e tonno e formaggio io cucino il pollo con rosmarino io cucino col forno a legna pasta e sugo io cucino con la pentola a pressione pasta e aglio e olio io cucino il pollo con rosmarino
In VB:
Module Module1 MustInherit Class Cuoco Public Sub Pollo() Console.WriteLine("io cucino il pollo col rosmarino") Console.ReadLine() End Sub Public MustOverride Sub Pasta(condimento As String) End Class Class Apprendista Inherits Cuoco Public Overrides Sub Pasta(condimento As String) Console.WriteLine("io cucino nella pentola a pressione pasta con " & condimento) Console.ReadLine() End Sub Public Overloads Sub Pasta(condimento As String, condimento2 As String) Console.WriteLine("io cucino nella pentola a pressione pasta con " & condimento & " e " & condimento2) Console.ReadLine() End Sub End Class Class Apprendista2 Inherits Cuoco Public Overrides Sub Pasta(condimento As String) Console.WriteLine("io cucino col forno a legna a pressione pasta con " & condimento) Console.ReadLine() End Sub Public Overloads Sub Pasta(condimento As String, condimento2 As String) Console.WriteLine("io cucino col forno a legna pasta con " & condimento & " e " & condimento2) Console.ReadLine() End Sub End Class Sub Main() Dim Antonio As New Apprendista Dim Giuseppe As New Apprendista2 Antonio.Pasta("sugo") Antonio.Pasta("tonno", "formaggio") Antonio.Pollo() Giuseppe.Pasta("sugo") Giuseppe.Pasta("aglio", "olio") Giuseppe.Pollo() End Sub End Module
io cucino nella pentola a pressione pasta con sugo io cucino nella pentola a pressione pasta con tonno e formaggio io cucino il pollo col rosmarino io cucino col forno a legna a pressione pasta con sugo io cucino col forno a legna pasta con aglio e olio io cucino il pollo col rosmarino
In C#:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication3 { abstract class Cuoco { public void Pollo() { Console.WriteLine("io cucino il pollo col rosmarino"); Console.ReadLine(); } abstract public void Pasta(string condimento); } class Apprendista : Cuoco { public override void Pasta(string condimento) { Console.WriteLine("io cucino nella pentola a pressione pasta con " + condimento); Console.ReadLine(); } public void Pasta(string condimento, string condimento2) { Console.WriteLine("io cucino nella pentola a pressione la pasta con " + condimento + " e " + condimento2); Console.ReadLine(); } } class Apprendista2 : Cuoco { public override void Pasta(string condimento) { Console.WriteLine("io cucino nel forno a legna pasta con " + condimento); Console.ReadLine(); } public void Pasta(string condimento, string condimento2) { Console.WriteLine("io cucino nel forno a legna la pasta con " + condimento + " e " + condimento2); Console.ReadLine(); } } class Program { static void Main(string[] args) { Apprendista Antonio = new Apprendista(); Apprendista2 Giuseppe = new Apprendista2(); Antonio.Pasta("sugo"); Antonio.Pasta("tonno", "formaggio"); Antonio.Pollo(); Giuseppe.Pasta("sugo"); Giuseppe.Pasta("aglio", "olio"); Giuseppe.Pollo(); } } }
io cucino nella pentola a pressione pasta con sugo io cucino nella pentola a pressione la pasta con tonno e formaggio io cucino il pollo col rosmarino io cucino nel forno a legna pasta con sugo io cucino nel forno a legna la pasta con aglio e olio io cucino il pollo col rosmarino
In Java:
package javaapplication1; abstract class Cuoco{ public void Pollo(){ System.out.println("io cucino il pollo col rosmarino"); } public abstract void Pasta(String condimento); } class Apprendista extends Cuoco{ public void Pasta(String condimento){ System.out.println("io cucino nella pentola a pressione pasta con "+ condimento); } public void Pasta(String condimento, String condimento2){ System.out.println("io cucino nella pentola a pressione pasta con " + condimento + " e "+ condimento2); } } class Apprendista2 extends Cuoco{ public void Pasta(String condimento){ System.out.println("io cucino nel forno a legna pasta con "+ condimento); } public void Pasta(String condimento, String condimento2){ System.out.println("io cucino nel forno a legna pasta con " + condimento + " e "+ condimento2); } } public class JavaApplication1 { public static void main(String[] args) { Apprendista Antonio=new Apprendista(); Apprendista2 Giuseppe=new Apprendista2(); Antonio.Pasta("sugo"); Antonio.Pasta("tonno","formaggio"); Antonio.Pollo(); Giuseppe.Pasta("sugo"); Giuseppe.Pasta("aglio","olio"); Giuseppe.Pollo(); } }
run: io cucino nella pentola a pressione pasta con sugo io cucino nella pentola a pressione pasta con tonno e formaggio io cucino il pollo col rosmarino io cucino nel forno a legna pasta con sugo io cucino nel forno a legna pasta con aglio e olio io cucino il pollo col rosmarino BUILD SUCCESSFUL (total time: 0 seconds)Ecco.
Adesso dobbiamo ripassarci bene overriding e overloading comparati...
Nessun commento:
Posta un commento