Facebook
From Ja, 3 Months ago, written in C#.
Embed
Download Paste or View Raw
Hits: 165
  1. internal class Program
  2. {
  3.     private static void Main(string[] args)
  4.     {
  5.         var student = new Student(22, "Jan Kowalski", new() { 4, 4, 5 });
  6.         student.Hello();
  7.         var elementaryStudent = new ElementaryStudent(14, "Anna Nowak", new() { 5, 5, 5 }, 32);
  8.         elementaryStudent.Hello(); // Elementary Student nie implementuje swoje Hello, więc wywoła się metoda z klasy bazowej
  9.         var universityStudent = new UniversityStudent(23, "John Doe", new() { 3, 3, 3 }, "C# jest super");
  10.         universityStudent.Hello(); // ta klasa robi override metody virtualnej, więc wywoła się implementacja z klasy pochodnej
  11.     }
  12. }
  13. public class Student
  14. {
  15.     public int Age { get; set; }
  16.     public string Name { get; set; }
  17.     public List<int> Grades { get; set; }
  18.     public Student(int age, string name, List<int> grades)
  19.     {
  20.         Age = age; Name = name; Grades = grades;
  21.     }
  22.     public virtual void Hello()
  23.     {
  24.         Console.WriteLine($"My name is {Name}. My age is {Age}. My best grade is {Grades.Max()}");
  25.     }
  26. }
  27.  
  28. public class ElementaryStudent : Student
  29. {
  30.     public int UniformSize { get; set; }
  31.     public ElementaryStudent(int age, string name, List<int> grades, int uniformSize)
  32.         :base(age, name, grades)
  33.     {
  34.         UniformSize = uniformSize;
  35.     }
  36. }
  37.  
  38. public class UniversityStudent : Student
  39. {
  40.     public string ThesisTitle { get; set; }
  41.     public UniversityStudent(int age, string name, List<int> grades, string thesisTitle):
  42.         base(age, name, grades)
  43.     {
  44.         ThesisTitle = thesisTitle;
  45.     }
  46.  
  47.     public override void Hello()
  48.     {
  49.         Console.WriteLine($"I'm from university. My thesis title is {ThesisTitle}");
  50.     }
  51. }