martedì 2 settembre 2014

Overloading di un metodo ereditato in C++, C# e Java

Dunque se in C++ bisogna fare l'overload di un metodo ereditato, bisogna ridefinire il metodo ereditato:
#include "iostream"
using namespace std;

class Base{
public:
 void metodo(){
 cout << "Io sono il metodo della classe Base" << endl;
 getchar();
 }
};

class Derivata: public Base{
public:
 void metodo(){
  Base::metodo();
 }
 void metodo(int parametro){
 cout << "Io sono il metodo della classe Derivata" << endl;
 getchar();

 }
 
};

void main(){
 Base miaBase;
 Derivata miaDerivata;


 miaBase.metodo();
 miaDerivata.metodo();
 miaDerivata.metodo(1);
} 
Io sono il metodo della classe Base

Io sono il metodo della classe Base

Io sono il metodo della classe Derivata


Cosa non necessaria in C# e Java:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Base
    {
        public void metodo()
        {
            Console.WriteLine("Io sono il metodo della classe Base");
            Console.ReadLine();
        }
    }

    class Derivata:Base{

        public void metodo(int parametro)
        {
            Console.WriteLine("Io sono il metodo della classe derivata ");
            Console.ReadLine();

        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Base miaBase=new Base();
            Derivata miaDerivata=new Derivata();
            

            miaBase.metodo();
            miaDerivata.metodo();
            miaDerivata.metodo(1);
        }
    }
}
Io sono il metodo della classe Base

Io sono il metodo della classe Base

Io sono il metodo della classe derivata


package javaapplication1;

class Base{
    public void metodo(){
        System.out.println("Io sono il metodo della classe Base");
        
    }
}

class Derivata extends Base{
    public void metodo(int parametro){
        System.out.println("Io sono il metodo della classe Derivata");
    }
}

public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) {
        Base miaBase=new Base();
        Derivata miaDerivata=new Derivata();
        
        miaBase.metodo();
        miaDerivata.metodo();   
        miaDerivata.metodo(1);
    }
}
run:
Io sono il metodo della classe Base
Io sono il metodo della classe Base
Io sono il metodo della classe Derivata
BUILD SUCCESSFUL (total time: 0 seconds)

Nessun commento:

Posta un commento