Thứ Năm, 27 tháng 2, 2014

Minh họa tính kế thừa class trong C#

Bài 30. Minh họa sự kế thừa, minh họa tính chất private và public các trường dữ liệu trong quá trình kế thừa.

1. Tạo lớp tàu có cấu trúc

class tau
    {
        //Các trường dữ liệu
        public string hangsx;
        public int nhienlieu;

        //Khởi tạo mặc định
        public tau()
        {
            hangsx = "VinaLine";
            nhienlieu = 10;
        }
    }

2. Tạo lớp tàu chiến, kế thừa lớp tàu:

class tauchien:tau
    {   //Khai báo trường dữ liệu
        //2 trường private và 1 trường public, các trường khác kế thừa từ lớp tau
        //trường private là trường riêng, nên muốn truy cập đến
        //2 trường này cần phải định nghĩa hàm thuộc tính có chứa get và set
        //2 trường riêng này các lớp dẫn xuất không kế thừa được
        private string sung;
        private string dan;
        public string chieudai;

        //thuộc tính Sung để tác động đến trường sung
        public string Sung
        {
            set { sung = value; }
            get { return sung; }
        }

        //thuộc tính Dan để tác động đến trường dan
        public string Dan
        {
            set { dan = value; }
            get { return dan; }
        }

        //Khởi tạo giá trị mặc định của tàu chiến
        public tauchien()
        {
            sung = "12ly7";
            dan = "Lien thanh";
            chieudai = "100m";
        }
    }

3. Tạo lớp tàu chở hàng, kế thừa lớp tàu chiến

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ct24_kethua
{
    class tauchohang:tauchien
    {
        //Gồm 1 trường dữ liệu
        //Các dữ liệu khác kế thừa từ lớp tauchien
        public int noichuahang;
        public tauchohang()
    {
        noichuahang=1500;
    }

    }
}


4. Tại chương trình chính thực hiện

class Program
    {
        static void Main(string[] args)
        {
            tau a = new tau();
            tauchien b = new tauchien();
            tauchohang c = new tauchohang();
            Console.WriteLine("Tau thong thuong:");
            Console.WriteLine("Hang san xuat: {0}, Nhien lieu mac dinh {1}", a.hangsx, a.nhienlieu );
            Console.WriteLine("------------------------");
           
            //Lớp tàu chiến
            //Do trường sung va dan là 2 trường private nên muốn lấy dữ liệu phải thông qua 2 phương thức Sung và Dan
            //hangsx và nhienlieu kế thừa từ lớp tau sang
            Console.WriteLine("TAU CHIEN:");
            Console.WriteLine("Hang san xuat: {0}, Nhien lieu mac dinh {1}", b.hangsx,b.nhienlieu);
            Console.WriteLine("Sung: {0}, Dan: {1}", b.Sung, b.Dan);
            Console.WriteLine("Chieu dai: {0} ", b.chieudai);
            Console.WriteLine("------------------------");
           

            //Lớp tàu chở hàng
            //c.chieudai kế thừa từ lớp tàu chiến
            //c.nhienlieu và c.hangsx kế thừa bắc cầu thông qua lớp tàu chiến đến lớp tàu.
            Console.WriteLine("TAU CHO HANG:");
            Console.WriteLine("Hang san xuat: {0}, Nhien lieu mac dinh {1}", a.hangsx,c.nhienlieu);
            Console.WriteLine("Noi chua hang: {0}", c.noichuahang);
            Console.WriteLine("Chieu dai: {0} ", c.chieudai);
           
           
            Console.ReadKey();

        }

    }

Không có nhận xét nào:

Đăng nhận xét