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){ cout << "io cucino nella pentola a pressione pasta con " << condimento << endl; getchar(); } 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("ragu"); Antonio->Pasta("ragu"); }
io cucino pasta con ragu io cucino nella pentola a pressione pasta con ragu
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 Overloads 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 pasta con " & condimento & " e " & condimento2) Console.ReadLine() End Sub End Class Sub Main() Dim Antonio As New Apprendista Antonio.Pasta("ragu") End Sub End Module
io cucino pasta con ragu io cucino nella pentola a pressione pasta con raguEcco.
Ho dovuto ridefinire il metodo in C++, e anche in VB.NET.
Però in VB.NET ho dovuto anteporre la parola chiave Overloads anche al metodo ridefinito.
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) { Console.WriteLine("io cucino nella pentola a pressione pasta con " + condimento); Console.ReadLine(); } 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("ragu"); Antonio.Pasta("ragu"); } } }
io cucino la pasta con ragu io cucino nella pentola a pressione pasta con ragu
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){ System.out.println("io cucino nella pentola a pressione pasta con "+ condimento); } 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("ragu"); Antonio.Pasta("ragu"); } }
run: io cucino pasta con ragu io cucino nella pentola a pressione pasta con ragu BUILD SUCCESSFUL (total time: 1 second)Anche qui il comportamento è simile a quello del C#.
Nessun commento:
Posta un commento