1. Trang chủ
  2. » Thể loại khác

Tính kế thừa trong C | 85 bài học lập trình C hay nhất PDF

7 192 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 360,68 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính kế thừa trong C# Một trong những khái niệm quan trọng nhất trong lập trình hướng đối tượng là Tính kế thừa Inheritance.. Tính kế thừa cho phép chúng ta định nghĩa một lớp trong điều

Trang 1

Tính kế thừa trong C#

Một trong những khái niệm quan trọng nhất trong lập trình hướng đối tượng là Tính kế thừa (Inheritance) Tính kế thừa cho phép chúng ta định nghĩa một lớp trong điều kiện một lớp khác,

mà làm cho nó dễ dàng hơn để tạo và duy trì một ứng dụng Điều này cũng cung cấp một cơ hội

để tái sử dụng tính năng code và thời gian thực thi nhanh hơn

Khi tạo một lớp, thay vì viết toàn bộ các thành viên dữ liệu và các hàm thành viên mới, lập trình viên có thể nên kế thừa các thành viên của một lớp đang tồn tại Lớp đang tồn tại này được gọi

là Base Class - lớp cơ sở, và lớp mới được xem như là Derived Class – lớp thừa kế

Ý tưởng của tính kế thừa triển khai mối quan hệ A (Là Một) Ví dụ, mammal IS A animal, dog

IS-A mammal, vì thế dog IS-IS-A animal, và

Lớp cơ sở (Base Class) và Lớp thừa kế (Derived

Class) trong C#

Một lớp có thể được kế thừa từ hơn một lớp khác, nghĩa là, nó có thể kế thừa dữ liệu và hàm từ nhiều Lớp hoặc Interface cơ sở

Cú pháp để tạo lớp kế thừa trong C# là:

<acess-specifier> class <base_class>

{

}

class <derived_class> : <base_class>

{

}

Xét một lớp cơ sở Shape và lớp kế thừa Rectangle sau:

using System;

namespace InheritanceApplication

{

class Shape

Trang 2

{

public void setWidth (int w )

{

width = w ;

}

public void setHeight (int h )

{

height = h ;

}

protected int width ;

protected int height ;

}

// Derived class

class Rectangle: Shape

{

public int getArea ()

{

return width * height );

}

}

class RectangleTester

{

static void Main(string[] args )

{

Rectangle Rect new Rectangle();

Rect setWidth ( );

Rect setHeight ( );

// Print the area of the object.

Console.WriteLine("Total area: {0}", Rect getArea ());

Trang 3

Console.ReadKey();

}

}

}

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

Total area: 35

Lớp kế thừa (Derived Class) trong C# kế thừa các biến thành viên và các phương thức thành viên

từ lớp cơ sở Vì thế, đối tượng của lớp cha nên được tạo trước khi lớp phụ được tạo Bạn có thể cung cấp các chỉ thị để khởi tạo lớp phụ trong danh sách khởi tạo thành viên

Chương trình ví dụ sau minh họa cách khởi tạo Lớp cơ sở (Base Class) trong C#:

using System;

namespace RectangleApplication

{

class Rectangle

{

//member variables

protected double length ;

protected double width ;

public Rectangle(double l , double w )

{

length = l ;

width = w ;

}

public double GetArea()

{

return length * width ;

}

Trang 4

public void Display()

{

Console.WriteLine("Length: {0}", length );

Console.WriteLine("Width: {0}", width );

Console.WriteLine("Area: {0}", GetArea());

}

} //end class Rectangle

class Tabletop Rectangle

{

private double cost ;

public Tabletop(double l , double w ) : base( , w )

{ }

public double GetCost()

{

double cost ;

cost = GetArea() 70 ;

return cost ;

}

public void Display()

{

base.Display();

Console.WriteLine("Cost: {0}", GetCost());

}

}

class ExecuteRectangle

{

static void Main(string[] args )

{

Tabletop t = new Tabletop( 4.5 , 7.5 );

t Display();

Console.ReadLine();

}

Trang 5

}

}

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

Length: 4.5

Width: 7.5

Area: 33.75

Cost: 2362.5

Đa kế thừa trong C#

C# không hỗ trợ đa kế thừa Tuy nhiên, bạn có thể sử dụng Interface để triển khai đa kế thừa Ví

dụ sau minh họa cách sử dụng Interface để triển khai đa kế thừa trong C#:

using System;

namespace InheritanceApplication

{

class Shape

{

public void setWidth (int w )

{

width = w ;

}

public void setHeight (int h )

{

height = h ;

}

protected int width ;

protected int height ;

}

// Base class PaintCost

public interface PaintCost

{

int getCost (int area );

Trang 6

}

// Derived class

class Rectangle Shape, PaintCost

{

public int getArea ()

{

return width * height );

}

public int getCost (int area )

{

return area * 70 ;

}

}

class RectangleTester

{

static void Main(string[] args )

{

Rectangle Rect new Rectangle();

int area ;

Rect setWidth ( );

Rect setHeight ( );

area = Rect getArea ();

// Print the area of the object.

Console.WriteLine("Total area: {0}", Rect getArea ());

Console.WriteLine("Total paint cost: 0" Rect getCost ( area ));

Console.ReadKey();

}

}

}

Trang 7

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

Total area: 35

Total paint cost: $2450

Ngày đăng: 02/12/2017, 20:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm