Czy klasa abstrakcyjna MUSI implementować metody z interfejsu?

Czy klasa abstrakcyjna MUSI implementować metody z interfejsu?
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
czy klasa abstrakcyjna MUSI implementować metody odziedziczone z interfejsu?

W książce napisali, że NIE musi ale kod pod VS bez implementacji metody nie przechodzi - więc jak to jest?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1

Co to za książka i co dokładnie napisali? Bo niby to prawda, chociaż tak naprawdę nie. W sensie implementować musi, ale może to robić abstrakcyjnie, czyli bez implementacji. ;)

  • Rejestracja: dni
  • Ostatnio: dni
0

Książka:
http://helion.pl/ksiazki/c-praktyczny-kurs-wydanie-ii-marcin-lis,cshpk2.htm#format/e
strona 315:
"zgodnie z tym, co zostało napisane wcześniej, klasa, która implementuje interfejs, musi zawierać implementację wszystkich jego składowych lub też musi być klasą abstrakcyjną".

Zrozumiałem z powyższego, że skoro jest tam "lub" to albo klasa jest zwykła i implementuje wszystkie składowe albo klasa jest abstrakcyjna i nie musi implementować...

DibbyDum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Polska, Kraków
4

Najlepiej widać to na przykładzie:

Kopiuj
public interface IFoo
{
    void Bar();

    void Baz();
}

public class ClassFoo : IFoo
{
    public void Bar()
    {
        // TODO...
    }

    public void Baz()
    {
        // TODO...
    }
}

public abstract class FooAbstract : IFoo
{
    public abstract void Bar();

    public void Baz()
    {
        // TODO...
    }
}

public class ClassFooAbstract : FooAbstract
{
    public override void Bar()
    {
        // TODO...
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.