Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Cách sử dụng đối tượng trong Abstract class trong C#?

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    1

    Mặc định Cách sử dụng đối tượng trong Abstract class trong C#?

    Em đang học .NET. Khi làm bài tập liên quan đến phương thức ảo thì bị mắc 1 chỗ. Không lấy được đối tượng trong abstract class.Các bác xem hộ e.

    Code:
    //em co lop co so la phuong thuc ao
     abstract class Xe
        {
            protected string hoten;
            protected int sogiothue { get; set; }
            abstract public void Nhap();
            abstract public void HienThi();
            abstract public double Tinhtien(int sogiothue);
        }
    // muon lay doi tuong sogiothue de su dung trong ham
     class QuanLy:Xe
        {
            Khach[] kh;
            int soluongkhach;
            public override void Nhap()
            {
                Console.WriteLine("Loai Xe Co The Thue");
                Console.WriteLine("\t1- Thue xe tai");
                Console.WriteLine("\t2- Thue xe khach");
                Console.Write("So luong khach hang thue xe: ");
                soluongkhach = int.Parse(Console.ReadLine());
                kh = new Khach[soluongkhach];
                Console.WriteLine("Nhap Thong Tin Khach Hang");
                Console.WriteLine();
                for (int i = 0; i < soluongkhach; i++)
                {
                    kh[i] = new Khach();
                    kh[i].Nhap();
                }
            }
            public override double Tinhtien(int sgt)
            {
                double tongt = 0;
                for (int i = 0; i < soluongkhach; i++)
                    tongt += kh[i].Tinhtien(sgt);
                return tongt;
            }
            public override void HienThi()
            {
                Console.WriteLine("Thong tin ve xe thue ");
                for (int i = 0; i < soluongkhach; i++)
                {
                    kh[i].HienThi();
                    Console.WriteLine("Tong Tien: {0}", Tinhtien(sogiothue));
                }
            }
        }
    2 class XeTai và XeKhach e đã xây dựng.
    Em tính tổng tiền mà khi xuất ra thì kết quả là 0 khi xuat sogiothue ra thi ket qua la 0. E tìm mọi cách mà không sao lấy được đối tượng sogiothue. Mong các bác giúp.Thanks.
    Bài chi tiết: QuanlyXe.txt

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Tinhtien(sogiothue) sửa thành Tinhtien(kh[i].sogiothue)
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    99

    Bạn sửa Console.WriteLine("Tong Tien: {0}", kh[i].Tinhtien());
    và sửa lại hàm tính tiền của abstract là Tinhtien();

  4. #4
    Ngày gia nhập
    02 2010
    Nơi ở
    Hà nội
    Bài viết
    101

    Bạn nên sửa lại vì lớp Quản lý chẳng liên quan gì đến lớp Xe cả;
    Lớp Khách cũng vậy. Bạn đừng kế thừa lung tung thế nhìn ko được đẹp.
    Nếu bạn muốn tất cả các lớp QuanLy, Khach, Xetai, XeKhach đều có phương thức hiển thị thì bạn
    dùng interface kiểu như thế này:

    interface IHienThi
    {
    void HienThi();
    }


    Trích dẫn Nguyên bản được gửi bởi chickscode Xem bài viết
    Em đang học .NET. Khi làm bài tập liên quan đến phương thức ảo thì bị mắc 1 chỗ. Không lấy được đối tượng trong abstract class.Các bác xem hộ e.

    Code:
    //em co lop co so la phuong thuc ao
     abstract class Xe
        {
            protected string hoten;
            protected int sogiothue { get; set; }
            abstract public void Nhap();
            abstract public void HienThi();
            abstract public double Tinhtien(int sogiothue);
        }
    // muon lay doi tuong sogiothue de su dung trong ham
     class QuanLy:Xe
        {
            Khach[] kh;
            int soluongkhach;
            public override void Nhap()
            {
                Console.WriteLine("Loai Xe Co The Thue");
                Console.WriteLine("\t1- Thue xe tai");
                Console.WriteLine("\t2- Thue xe khach");
                Console.Write("So luong khach hang thue xe: ");
                soluongkhach = int.Parse(Console.ReadLine());
                kh = new Khach[soluongkhach];
                Console.WriteLine("Nhap Thong Tin Khach Hang");
                Console.WriteLine();
                for (int i = 0; i < soluongkhach; i++)
                {
                    kh[i] = new Khach();
                    kh[i].Nhap();
                }
            }
            public override double Tinhtien(int sgt)
            {
                double tongt = 0;
                for (int i = 0; i < soluongkhach; i++)
                    tongt += kh[i].Tinhtien(sgt);
                return tongt;
            }
            public override void HienThi()
            {
                Console.WriteLine("Thong tin ve xe thue ");
                for (int i = 0; i < soluongkhach; i++)
                {
                    kh[i].HienThi();
                    //Console.WriteLine("Tong Tien: {0}", Tinhtien(sogiothue));//Bạn đang tính tiền cho class Quản lý mà không phải là class Khách
     //fix:
    Console.WriteLine("Tong Tien: {0}",  kh[i].Tinhtien((int)kh[i].sgt()));
                }
            }
        }
    2 class XeTai và XeKhach e đã xây dựng.
    Em tính tổng tiền mà khi xuất ra thì kết quả là 0 khi xuat sogiothue ra thi ket qua la 0. E tìm mọi cách mà không sao lấy được đối tượng sogiothue. Mong các bác giúp.Thanks.
    Bài chi tiết: QuanlyXe.txt

Các đề tài tương tự

  1. Abstract class khác với class thường ở chổ nào
    Gửi bởi nhan_t3 trong diễn đàn Thắc mắc lập trình Java
    Trả lời: 3
    Bài viết cuối: 27-05-2013, 01:18 AM
  2. Trong Objective C có Abstract class và Reflection hay không ?
    Gửi bởi ngocsonaat trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 14
    Bài viết cuối: 27-09-2011, 10:04 PM
  3. Tài liệu Abstract trong C#
    Gửi bởi diendanit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 13-12-2010, 11:21 AM
  4. Viết Plugin Đọc các loại File trong C# Dùng Inhetrite Interface, Abstract, hay Class
    Gửi bởi buidinhba5 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 11-07-2009, 04:27 PM
  5. Abstract class Vs Interface! Help me!
    Gửi bởi kids trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 16
    Bài viết cuối: 11-11-2008, 05:37 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn