Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cs5.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
436 Кб
Скачать
☆

Наслідування класів

Досить часто об’єкти різних класів можуть мати одні і ті ж елементи даних. Наприклад, анкетні дані потрібні і для студента, і для викладача, і для офіцера, і для спортсмена

і т. д. Нераціонально в кожному класі передбачати окремо такі елементи даних як ім’я, прізвище, вік, адресу та інші загальні дані. Таку інформацію зручно розмістити в узагальненому класі, наприклад в класі «Людина». Це буде базовий клас. А класи «студент», «викладач» та інші зробити похідними від класу «Людина».

В базовому класі доступ до елементів даних повинен бути не private, а protected. Це дозволяє похідним класам використовувати елементи даних базового класу. На відміну від С та С++ після мітки доступу двокрапку ставити не треба. Проте мітку доступу тепер треба ставити перед кожним елементом даних або перед кожним методом. Інакше буде доступ по замовчуванню. Описання похідного класу має вид:

class ім’я_похідного_класу : ім’я_базовго_класу

{

}

Приклад:

namespace pr1

{

class man

{

}

class student: man

{

}

}

Похідний клас, в свою чергу, може бути базовим для іншого класу.

Приклад: Є базовий клас «людина” із елементом даних «ім’я» і похідний від нього клас «студент». В свою чергу від класу «студент» є похідний клас «спортсмен».

using System;

using System.Collections.Generic;

using System.Text;

namespace man_stud_sport

{

class man

{

protected string name;

}

class student : man

{

protected string group;

}

class sportsman :student

{

string vid_sporta; //доступ по замовчуванню

public void input()

{

Console.WriteLine("Enter name");

name = Console.ReadLine();

Console.WriteLine("Enter group");

group = Console.ReadLine();

Console.WriteLine("Enter vid_sporta");

vid_sporta = Console.ReadLine();

}

public void output()

{

Console.WriteLine(" name is {0} group is {1} vid_sporta is {2}", name, group, vid_sporta);

}

}

class Program

{

static void Main(string[] args)

{

sportsman q = new sportsman();

q.input();

q.output();

}

}

}

Постановка задачі

Створити базовий клас “Людина” із елементами даних “ім'я” , “адреса” та “вік” і похідний клас “Студент” із елементом даних “професія”

Created by SharpDevelop.  * User: AVR  * Date: 01/04/2013  * Time: 11:11  *   * To change this template use Tools | Options | Coding | Edit Standard Headers.  */ using System; namespace inherit1 {     class man     { protected         string name; protected  string address; protected int age;              }

public void output_stud()         { Console.WriteLine("name is {0} address is {1} age={2}",name,address,age); Console.WriteLine("Profession is {0}",profession);                      }     }

class Program     {         public static void Main(string[] args)         {             student x=new student();             x.input_stud();             x.output_stud();             Console.WriteLine("Finish!");                          // TODO: Implement Functionality Here               Console.Write("Press any key to continue . . . ");             Console.ReadKey(true);         }     } }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]