C#


Nơi trao đổi về ngôn ngữ C#

Demo thừa kế trong C#

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

namespace T5
{
///

/// lop mieu ta dong vat
///

abstract class Cls_Animal
{
private bool _alive;
///

/// Trang thai cua con nguoi con song hay da chet
///

public bool Alive
{
get
{
return _alive;
}
set
{
_alive = value;
}
}

///

/// Phuong khoi tao khong co doi so, cho phep khoi tao gia tri mac dinh
///

public Cls_Animal()
{
_alive = true;
}
///

/// Ham khoi tao cung cap gia tri ban dau
///

/// true nue dong vat con song
public Cls_Animal(bool alive)
{
_alive = alive;
}

///

/// Phuong thu mo ta hanh dong an cua dong vay
///

public abstract void Eat();
///

/// Mo ta tieng keu cua dogn vat
///

public abstract void Sound();
}

interface IMarine
{
void Move();
void Run();
}
interface ITerrestrial
{
void Move();
}
class Person:Cls_Animal, IMarine,ITerrestrial
{
static void Main(string[] a)
{
Person objPerson = new Person(true, new DateTime(2000,1,1));
Console.WriteLine(“age: “+objPerson.Age);
objPerson.Eat();
objPerson.Sound();
objPerson.Move();
objPerson.Run();

Cls_Fish objFish = new Cls_Fish();
objFish.Move();
objFish.Sound();
Console.WriteLine(“Fish is alive “, objFish.Alive);
}

public Person(): base()
{
BirthDate = DateTime.Now;
}

///

/// Khoi tao con nguoi
///

/// Con song hay da chet
/// Ngay sinh ra
public Person(bool alive, DateTime birthdate): base(alive)
{
BirthDate = birthdate;
}

///

/// Thuoc tinh chi duoc doc, tra ve tui cua nguoi dua vao ngay sinh
///

public int Age
{
get
{
// tuoi = nam hien tai tru nam sinh
return DateTime.Now.Year – BirthDate.Year;
}
}

private DateTime _BirthDate;
///

/// Ngay sinh cua con nguoi
///

public DateTime BirthDate
{
get { return _BirthDate; }
set { _BirthDate = value; }
}

///

/// Dinh nghia cho phuong thuc thua ke tu interface
///

void ITerrestrial.Move()
{
Console.WriteLine(“Moving by run”);
}

///

/// Dinh nghia cho phuong thuc thua ke tu interface
///

void IMarine.Move()
{
Console.WriteLine(“Moving by swim”);
}

///

/// Phuong thuc truy xuat tu ben ngoai
///

public void Move()
{
IMarine obj = this;
obj.Move();
ITerrestrial obj1 = this;
obj1.Move();
}

public void Run()
{
IMarine obj = this;
obj.Run();
}

///

/// Dinh nghia noi dung phuong thua ke tu lop animal
///

public override void Eat()
{
Console.WriteLine(“The person can eat animal and plant”);
}
///

/// Dinh nghia noi dung phuong thua ke tu lop animal
///

public override void Sound()
{
Console.WriteLine(“The person can sing song”);
}

#region IMarine Members

void IMarine.Run()
{
Console.WriteLine(“The person run by two feets”);
}

#endregion
}
class Cls_Fish:Cls_Animal,ITerrestrial,IMarine
{
public override void Eat()
{
Console.WriteLine(“Fish can ate something”);
}

public override void Sound()
{
Console.WriteLine(“Can not make a sound”);
}

public void Move()
{
ITerrestrial obj = this;
obj.Move();
}

void ITerrestrial.Move()
{
Console.WriteLine(“Move by swimming”);
}

void IMarine.Move()
{
Console.WriteLine(“can not run”);
}

void IMarine.Run()
{
Console.WriteLine(“can not run”);
}
}
}

One thought on “C#

  1. #region Singleton
    private static volatile Animal instance;
    private static object syncRoot = new Object();

    private M_Antrom() { }

    public static Animal Instance
    {
    get
    {
    if (instance == null)
    {
    lock (syncRoot)
    {
    if (instance == null)
    instance = new Animal();
    }
    }

    return instance;
    }
    }
    #endregion

    Thầy ui giải thích dùm em đoạn mã trên với, ngoài cách khởi tạo đối tượng truyền thống là name_Class obj = new name_Class() thì em thấy trên mạng còn sử dụng cách này để tạo đối tượng bằng cách này, em chưa hiểu đoạn code này thầy chỉ em với. Cho em biết cách này có ưu, khuyết điểm gì không và trường hợp nào mình nên dùng nó, Thank thầy.

    Số lượt thích

Phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s