C# problem z interfejsem

Forum poświęcone językowi C#.

Moderator: xxSlayeRxx

C# problem z interfejsem

Sponsor

Sponsor
 

C# problem z interfejsem

Postprzez Two6Player » Wt lut 17, 2015 10:02 am

Cześć wszystkim
Od jakiegoś czasu uczę się C# i postanowiłem, że nadszedł czas na naukę wzorców. Niestety książka z której korzystam jest bardziej do javy.
Błąd jaki wyskakuje w kodzie po odpaleniu to : Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

a oto kod
w komentarzach dałem kod javy.

Kod: Zaznacz cały
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wzorzec_Interface
{
    class Program
    {
        static void Main(string[] args)
        {
            Kaczka dzika = new DzikaKaczka();
            dzika.wykonajLec();
            dzika.wykonajKwacz();

            Console.ReadLine();
        }
    }

    public abstract class Kaczka
    {
        LatanieInterfejs latanieInterfejs;
        KwakanieInterfejs kwakanieInterfejs;
        public Kaczka()
        {
        }
        public void wykonajKwacz()
        {
            kwakanieInterfejs.kwacz();
        }
        public void wykonajLec()
        {
           latanieInterfejs.lec();
        }


    }
    //public DzikaKaczka extends Kaczka
    public class DzikaKaczka : Kaczka
    {
        public DzikaKaczka()
        {
            KwakanieInterfejs kwakanieInterfejs= new Kwacz();
            LatanieInterfejs  latanieInterfejs= new LatamBoMamSkrzydla();
        }
        public void wyswietl()
        {
            Console.WriteLine("Jestem dziką kaczką");
        }
    }
    public interface LatanieInterfejs
    {
        void lec();


    }
    //public class LatamBoMamSkrzydla implements LatanieInterfejs
    public class LatamBoMamSkrzydla : Kaczka, LatanieInterfejs
    {
        public void lec()
        {
            Console.WriteLine("O rany! Latam!");
        }
    }
 //public class NieLatam implements LatanieInterfejs
    public class Nielatam : Kaczka, LatanieInterfejs
    {
        public void lec()
        {
            Console.WriteLine("Nie umiem latać");
        }
    }

    public interface KwakanieInterfejs
    {
        void kwacz();
    }
   //public class Kwacz implements KwakanieInterfejs
    public class Kwacz : KwakanieInterfejs
    {
        public void kwacz()
        {
            Console.WriteLine("kwa kwa");
        }
    }
   //public class NieKwacz implements KwakanieInterfejs
    public class NieKwacz : KwakanieInterfejs
    {
        public void kwacz()
        {
            Console.WriteLine("<<cisza>>");
        }
    }

    public class Piszcz : KwakanieInterfejs
    {
        public void kwacz()
        {
            Console.WriteLine("Piszczę!!");
        }
    }

}
Two6Player
New member
 
Posty: 3
Dołączył(a): Śr kwi 02, 2014 6:30 pm

Re: C# problem z interfejsem

Postprzez NeuroProgramista » Wt lut 17, 2015 6:00 pm

No tak, w interface masz tylko wzór metody więc co chcesz tak naprawdę wywołać ?
Musiał byś mieć coś w stylu :
w {-Kaczka-} metoda dziedziczona z {- interface KwakanieInterfejs -} której ciało masz w klasie {-Kaczka-}

Bo teraz wywołujesz metodę z interfejsu - a w interfejscie nie można deklarować metod z kotem tylko "nazwe metody"

Pozdr.
NeuroProgramista
New member
 
Posty: 1
Dołączył(a): Pn sty 26, 2015 8:42 am
Lokalizacja: Opole

Re: C# problem z interfejsem

Sponsors

Sponsor
 


Powrót do C#

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 14 gości