- C# cho phép lớp phương thức hay thuộc tính có thể
khai báo abstract. Một lớp abstract không được thể hiện và một phương
thức abstract chỉ được đưa ra định nghĩa không được thực thi mà phải được overriden trong bất kỳ
lớp kế thừa thừa từ nó. Một phương thức abstract sẽ tự động
được khai báo virtual. Nếu một lớp có phương thức abstract thì nó cũng
là lớp abstract và được khai báo như sau:
Những lớp được định
nghĩa bằng cách dùng từ khóa abstract
thì không cho phép khởi tạo đối tượng của lớp ấy.
abstract class Shape
{
public abstract
float calculateArea();
public void displaySomething()
{
Console.WriteLine("Something is displayed");
}
}
class Circle:Shape
{
float radius;
public override
float calculateArea()
{
return radius * 22 / 7;
}
}
Sealed:
- C#
cho phép các lớp và phương thức được khai báo sealed. Điều này có nghĩa là bạn không được quyền thừa kế lớp đó, nếu là phương thức tức là
bạn không được phép override nó.
sealed class FinalClass
{
// etc
}
class DerivedClass : FinalClass //Điều này là sai, trình biên dịch sẽ báo lỗi do kế thừa từ một lớp có khai báo sealed.
{
// etc
}
class MyClass
{
public sealed override void FinalMethod()
{
// etc.
}
}
class DerivedClass : MyClass
{
public override void FinalMethod() // Điều này là sai. trình biên dịch sẽ báo lỗi do ghi đè phương thức có khai báo sealed
{
}
}
2 comments:
Bạn có thể đọc thêm chi tiết tại đây:
http://minhhn.com/lap-trinh-c-sharp/lop-truu-tuong-abstract-class-trong-csharp/
Đăng nhận xét