• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Klasy i ich dziedziczenie

Object Storage Arubacloud
0 głosów
227 wizyt
pytanie zadane 24 maja 2020 w C# przez Penguin77 Nowicjusz (160 p.)

Witam, w programie, który napisałam cały czas podkreśla mi się Student w klasie pochodnej. Nie wiem co jest źle. Czy ktoś mógłby pomóc?


 

 class Program
    {
        public class Osoba
        {
            private string imie;
            private string nazwisko;
            private string dataUrodzenia;

            public string Imie { get => imie; set => imie = value; }
            public string Nazwisko { get => nazwisko; set => nazwisko = value; }
            public string DataUrodzenia { get => dataUrodzenia; set => dataUrodzenia = value; }

            public Osoba(string imie_, string nazwisko_, string dataUrodzenia_)
            {
                Imie = imie_;
                Nazwisko = nazwisko_;
                DataUrodzenia = dataUrodzenia_;

            }

            public virtual void WypiszInfo()
            {

            }


        }

        public class Student : Osoba
        {
            private int grupa;
            private int rok;
            private int nrIndeksu;

            public int Grupa { get => grupa; set => grupa = value; }
            public int Rok { get => rok; set => rok = value; }
            public int NrIndeksu { get => nrIndeksu; set => nrIndeksu = value; }

            public Student(string imie_, string nazwisko_, string dataUrodzenia_, int grupa_, int rok_, int nrIndeksu_):
                base(imie_, nazwisko_, dataUrodzenia_);


 static void Main(string[] args)

 

1 odpowiedź

0 głosów
odpowiedź 24 maja 2020 przez adrian17 Ekspert (344,860 p.)

cały czas podkreśla mi się Student w klasie pochodnej

Podaj komunikat o błędzie, bo samo "podkreśla" nic nie mówi. 

public Student(string imie_, string nazwisko_, string dataUrodzenia_, int grupa_, int rok_, int nrIndeksu_):
                base(imie_, nazwisko_, dataUrodzenia_);

Wydaje mi się, że tu powinien jeszcze wciąż być blok kodu {}, nawet jeśli pusty.

A swoją drogą:

            private int grupa;
            public int Grupa { get => grupa; set => grupa = value; }

Zamiast tego można po prostu napisać

            public int Grupa { get; set; }

 

komentarz 24 maja 2020 przez Penguin77 Nowicjusz (160 p.)
Treść błędu: Element Student musi zadeklarować treść, ponieważ nie jest oznaczony jako abstrakcyjny, zewnętrzny ani częściowy
komentarz 24 maja 2020 przez adrian17 Ekspert (344,860 p.)
No, to dokładnie to co napisałem - konstruktor musi mieć ciało.
komentarz 24 maja 2020 przez Penguin77 Nowicjusz (160 p.)
Dziękuję, teraz jest wszystko w porządku, ale pojawił się nowy kłopot :/. Mianowicie cały kod jest dobry, nie pokazuje żadnych błędów, lecz gdy go uruchamiam wyświetla się pusta konsola. Co może być przyczyną, problem leży w Visual Studio?
komentarz 24 maja 2020 przez adrian17 Ekspert (344,860 p.)
Jak wyżej - nie mogę zgadywać :P Pokaż cały kod.
komentarz 24 maja 2020 przez Penguin77 Nowicjusz (160 p.)
class Program
    {
        public class Osoba
        {
           
            public string Imie { get; set; }
            public string Nazwisko { get; set; }
            public string DataUrodzenia { get; set; }

            public Osoba(string imie_, string nazwisko_, string dataUrodzenia_)
            {
                Imie = imie_;
                Nazwisko = nazwisko_;
                DataUrodzenia = dataUrodzenia_;

            }

            public virtual void WypiszInfo() { }
           
        }

        public class Student : Osoba
        {
            public int Grupa { get; set; }
            public int Rok { get; set; }
            public int NrIndeksu { get; set; }


            public Student(string imie_, string nazwisko_, string dataUrodzenia_, int v1, int v2, int v3) : base(imie_, nazwisko_, dataUrodzenia_)
            {
            }

            public override void WypiszInfo() { }

        }
        public class Piłkarz : Osoba
        {
            int liczbaGoli = 0;

            public string Pozycja { get; set; }
            public string Klub { get; set; }
            public int LiczbaGoli { get; set; }


            public Piłkarz(string imie_, string nazwisko_, string dataUrodzenia_, string v1, string v2) : base(imie_, nazwisko_, dataUrodzenia_)
            {
            }

            public override void WypiszInfo() { }

            public void StrzelGola()
            {
                int StrzelGola = liczbaGoli + 1;
            }
        }

        static void Main(string[] args)
        {
            Osoba o = new Osoba("Adam", "Miś", "20.03.1980");
            Osoba o2 = new Student("Michał", "Kot", "13.04.1990", 2, 1, 12345);
            Osoba o3 = new Piłkarz("Mateusz", "Żbik", "10.08.1986", "obrońca", "FC Częstochowa");

            o.WypiszInfo();
            o2.WypiszInfo();
            o3.WypiszInfo();

            Student s = new Student("Krzysztof", "Jeż", "22.12.1990", 2, 5, 54321);
            Piłkarz p = new Piłkarz("Piotr", "Kos", "14.09.1984", "napastnik", "FC Politechnika");

            s.WypiszInfo();
            p.WypiszInfo();

            ((Piłkarz)o3).StrzelGola();
            p.StrzelGola();
            p.StrzelGola();

            o3.WypiszInfo();
            p.WypiszInfo();

            Console.ReadKey();
        }
    }
}

 

komentarz 24 maja 2020 przez adrian17 Ekspert (344,860 p.)

wyświetla się pusta konsola

Nic dziwnego, jeśli nic w tym kodzie nie wypisujesz ;)

komentarz 24 maja 2020 przez Penguin77 Nowicjusz (160 p.)
Właśnie miałam wrażenie, że brakuje Console.WriteLine, ale taki kod (to co jest pod Main) dostałam do sprawdzenia kodu

Podobne pytania

0 głosów
1 odpowiedź 258 wizyt
pytanie zadane 29 maja 2018 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
0 głosów
0 odpowiedzi 185 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez neefiq Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 167 wizyt

92,572 zapytań

141,422 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...