Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных - C#
Формулировка задачи:
Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных.
Решение задачи: «Продемонстрировать принцип иерархии, наследования классов и инкапсуляции данных»
textual
Листинг программы
- using System;
- abstract class TwoDShape {
- double pri_width;
- double pri_height;
- // Конструктор, используемый по умолчанию,
- public TwoDShape() {
- Width = Height =0.0;
- name = "null";
- }
- // Параметризированный конструктор.
- public TwoDShape(double w, double h, string n) {
- Width = w;
- Height = h;
- name = n;
- }
- // Сконструировать объект равной ширины и высоты,
- public TwoDShape(double x, string n) {
- Width = Height = x;
- name = n;
- }
- // Сконструировать копию объекта TwoDShape.
- public TwoDShape(TwoDShape ob) {
- Width = ob.Width;
- Height = ob.Height;
- name = ob.name;
- }
- // Свойства ширины и высоты объекта,
- public double Width {
- get { return pri_width; }
- set { pri_width = value < 0 ? -value : value; }
- }
- public double Height {
- get { return pri_height; }
- set { pri_height = value < 0 ? -value : value; }
- }
- public string name { get; set; }
- public void ShowDim() {
- Console.WriteLine("Ширина и высота равны " +
- Width + " и " + Height);
- }
- // Теперь метод Агеа() является абстрактным,
- public abstract double Area();
- // Класс для треугольников, производный от класса TwoDShape.
- class Triangle : TwoDShape {
- string Style;
- // Конструктор, используемый по умолчанию,
- public Triangle() {
- Style = "null";
- }
- // Конструктор для класса Triangle,
- public Triangle(string s, double w, double h) :
- base (w, h, "треугольник") {
- Style = s;
- }
- // Сконструировать равнобедренный треугольник,
- public Triangle(double x) : base(x, "треугольник") {
- Style = "равнобедренный";
- }
- // Сконструировать копию объекта типа Triangle,
- public Triangle(Triangle ob) : base(ob) {
- Style = ob.Style;
- }
- // Переопределить метод Агеа() для класса Triangle,
- public override double Area() {
- return Width * Height / 2;
- }
- // Показать тип треугольника,
- public void ShowStyleO {
- Console.WriteLine("Треугольник " + Style);
- }
- V/ Класс для прямоугольников, производный от класса TwoDShape
- class Rectangle : TwoDShape {
- // Конструктор для класса Rectangle.
- public Rectangle(double w, double h) :
- base(w, h, "прямоугольник"){ }
- // Сконструировать квадрат,
- public Rectangle(double x) :
- base(x, "прямоугольник") { }
- // Сконструировать копию объекта типа Rectangle,
- public Rectangle(Rectangle ob) : base(ob) { }
- // Возвратить логическое значение true, если
- // прямоугольник окажется квадратом,
- public bool IsSquareO {
- if(Width == Height) return true;
- return false;
- }
- // Переопределить метод Агеа() для класса Rectangle,
- public override double Area() {
- return Width * Height;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д