Font size
WorksheetsLập trình hướng đối tượng
Total questions: 105
Worksheet time: 53mins
Phương án nào mô tả tính đa hình chính xác
Phương án nào mô tả tính đa hình chính xác
Các lớp Điểm, Hình tròn, Hình vuông, Hình chữ nhật… đều có phương thức Vẽ.
Lớp Điểm, Hình tròn cùng có hàm tạo, hàm hủy.
Lớp hình vuông kế thừa lớp hình chữ nhật.
Đặc điểm chính nào phân biệt lập trình hướng đối tượng với lập trình thủ tục?
Lập trình thủ tục tổ chức mã thành các đối tượng, còn lập trình hướng đối tượng tổ chức mã thành các hàm.
Lập trình hướng đối tượng tổ chức mã thành các lớp và đối tượng, trong khi lập trình thủ tục chỉ tập trung vào các hàm và dữ liệu toàn cục.
Lập trình thủ tục không có tính đóng gói, còn lập trình hướng đối tượng có tính đóng gói.
Lập trình thủ tục hỗ trợ đa hình, còn lập trình hướng đối tượng không hỗ trợ.
Lập trình tuyến tính không phù hợp với các dự án phần mềm lớn vì lý do gì?
Không cho phép chia nhỏ chương trình thành các phần có thể quản lý được.
Không có cách nào để xử lý nhiều điều kiện cùng một lúc.
Không thể chạy chương trình trên nhiều hệ điều hành khác nhau.
Không cho phép quản lý biến toàn cục
Cho đối tượng Diem được định nghĩa như sau:
class Diemn {
private float x; //Hoành độ
private float y; //Tung độ }
Cho biết các thuộc tính cơ bản của đối tượng Diem sẽ được đặt tên là
Hoành độ, tung độ
x,y
Diem
float
Xét bài toán nhập vào danh sách n sinh viên với thông tin: Họ tên, ngày sinh, giới tính. Các lớp đối tượng cần xây dựng trong bài toán gồm:
Lớp sinh viên và lớp main
Lớp danh sách sinh viên và lớp main
Lớp sinh viên, lớp danh sách sinh viên và lớp main
Chỉ cần xây dựng lớp main là đủ
Cho biết phát biểu nào sau đây sai về bổ từ mức truy cập public, protected và private
Những thành viên được đánh dấu public có thê được dùng bởi bất kì trong các phương thức của các lớp khác.
Thành viên trong một lớp A được đánh dấu là private thì chỉ được truy cập bới các phương thức của lớp A
Thành viên trong lớp A được đánh dấu là protected thì chỉ được các phương thức bên trong lớp A và những phương thức của lớp dẫn xuất từ lớp A truy cập
public, protected và private có mức truy cập tương đương nhau, tùy tình huống sử dụng
Xét bài toán nhập vào danh sách n sinh viên với thông tin sinh viên gồm: mã sinh viên, Họ tên, ngày sinh, giới tính. Cho biết các thuộc tính của lớp danh sách sinh viên là
mã sinh viên, Họ tên, ngày sinh, giới tính
mã sinh viên
Số sinh viên, danh sách (mảng hoặc list) đối tượng sinh viên
đối tượng sinh viên
Cho biết loại hàm khởi tạo của hàm sau
public KhachHang()
{
}
Hàm khởi tạo không tham số
Hàm khởi tạo có tham số
Hàm khởi tạo sao chép
Không phải là hàm khởi tạo
Xây dựng lớp hình tam giác gồm 3 thuộc tính a, b và c. Để khai báo hàm khởi tạo với tham số mặc định thì ta khai báo
Hinhtamgiac()
Hinhtamgiac (a,b,c)
Hinhtamgiac (int a, int b, int c)
Hinhtamgiac (Hinhtamgiac tg)
Xây dựng lớp hình chữ nhật gồm 2 thuộc tính dai và rong.
public class Hinhchunhat {
private float dai,rong; }
Để khai báo hàm khởi tạo với tham số mặc định thì ta khai báo
Hinhchunhat()
Hinhchunhat(dai,rong)
Hinhchunhat(float dai, float rong)
Hinhchunhat(int dai, int rong)
Một lớp tĩnh (static) có thể có thành phần nào? Chọn câu trả lời phù hợp/đầy đủ nhất.
Chỉ được có Thuộc tính tĩnh
Chỉ được có Phương thức tĩnh
Chỉ được chứa thành phần (thuộc tính và phương thức) tĩnh
Được chứa thành phần không tĩnh (non-static)
Một phương thức tĩnh (static) trong một lớp có thể được/bị ghi đè (overridden) không? Chọn câu trả lời phù hợp/đầy đủ nhất.
Không, một phương thức tĩnh không thể bị ghi đè vì nó thuộc về chính lớp đó, không phải là thể hiện (instance) của lớp đó.
Không, một phương thức tĩnh không thể bị ghi đè vì nó là thể hiện (instance) của lớp đó.
Có, một phương thức tĩnh có thể bị ghi đè vì nó thuộc về chính lớp đó, không phải là thể hiện (instance) của lớp đó.
Có, một phương thức tĩnh có thể bị ghi đè vì nó là thể hiện (instance) của lớp đó.
Phát biểu nào sau đây là sai?
Một lớp tĩnh (static class) không thể được khởi tạo trong khi chúng ta được phép tạo các đối tượng của một lớp không tĩnh (non-static class) bằng cách sử dụng từ khóa new.
Một lớp tĩnh (static class) không thể kế thừa từ một lớp khác trong khi một lớp không tĩnh (non-static class) có thể kế thừa từ một lớp khác.
Một lớp tĩnh (static class) không thể được/bị kế thừa bởi bất kỳ lớp nào trong khi một lớp không tĩnh (non-static class) có thể được kế thừa bởi các lớp khác.
Một lớp tĩnh (static class) có thể được kế thừa bởi bất kỳ lớp nào.
Khẳng định nào sau đây mô tả chính xác nhất về kế thừa?
Sao lưu mã chương trình đã được viết
Sử dụng mã chương trình đã được viết
Sử dụng các hàm đã được định nghĩa
Sử dụng dữ liệu và phương thức trong phần kế thừa
Khi khai báo, xây dựng lớp các thuộc tính của lớp thường được khai báo trong phạm vi private, điều này thể hiện đặc tính:
Đa hình (Polymophism)
Kế thừa (Inheritance)
Trừu tượng (Abstraction)
Đóng gói (Encapsulation)
Giả sử rằng có ba lớp: Computer, AppleComputer và IBMComputer. Mối quan hệ nên xảy ra giữa các lớp này là gì?
Computer, AppleComputer và IBMComputer là các lớp anh em.
IBMComputer là lớp cha, AppleComputer và Computer là lớp con của IBMComputer
Computer là lớp cha, AppleComputer và IBMComputer là lớp con của Computer.
Computer là một lớp cha, AppleComputer là một lớp con của Computer và IBMComputer là một lớp con của AppleComputer.
Lớp Cat kế thừa lớp Animal. Khai báo nào sau đây là sai?
Cat x = new Cat();
Cat x = new Animal();
Animal X = new Animal();
Animal x = new Cat();
Đa hình thái (polymorphism) trong lập trình hướng đối tượng là gì?
Khả năng của các phương thức có thể có nhiều tên khác nhau.
Khả năng của các đối tượng khác nhau có thể đáp ứng cùng một phương thức theo các cách khác nhau.
Khả năng của các lớp có thể kế thừa từ nhiều lớp cha
Khả năng của các thuộc tính có thể thay đổi kiểu dữ liệu.
Điều gì sẽ xảy ra nếu một lớp con không ghi đè một phương thức virtual trong lớp cha?
Phương thức từ lớp cha sẽ được sử dụng.
Lỗi biên dịch.
Phương thức sẽ bị bỏ qua.
Lớp con sẽ không thể khởi tạo đối tượng.
Phương thức ảo có thể được khai báo là tĩnh không? Tại sao?
Có, phương thức ảo có thể là tĩnh.
Không, phương thức ảo không thể là tĩnh.
Có, nhưng phương thức tĩnh không thể ghi đè.
Không, vì phương thức tĩnh không thể được kế thừa.
Lớp trừu tượng trong C# là gì?
Lớp không chứa phương thức nào.
Lớp có thể tạo đối tượng trực tiếp từ nó.
Lớp có thể chứa cả phương thức cụ thể và phương thức trừu tượng
Lớp mà các phương thức không bao giờ được ghi đè.
Đặc điểm nào đúng về lớp trừu tượng trong C#?
Nó bắt buộc phải chứa ít nhất một phương thức trừu tượng.
Nó có thể tạo được đối tượng trực tiếp.
Nó không thể chứa thuộc tính.
Nó chỉ được sử dụng trong C++.
Có thể nào một phương thức trong lớp trừu tượng được khai báo là private trong C#?
Có, nhưng không thể ghi đè nó.
Có, nhưng phải là phương thức trừu tượng.
Không, vì phương thức trừu tượng phải có thể ghi đè.
Có, nhưng nó sẽ không có thân phương thức
Ngoại lệ (exception) trong C# là gì?
Một lỗi cú pháp xảy ra khi biên dịch chương trình.
Một lỗi logic xảy ra trong thời gian chạy (runtime) của chương trình.
Một kỹ thuật lập trình để tối ưu hóa mã nguồn.
Một phương thức để lưu trữ dữ liệu tạm thời.
Trong C#, phương thức nào được sử dụng để ghi thông tin vào nhật ký trong quá trình Debugging?
Console.WriteLine()
Debug.WriteLine()
Trace.WriteLine()
File.WriteAllText()
using System;
class RefTest {
public void sqr(ref int i) {
i=i*i;
}
}
class MainClass {
public static void Main() {
RefTest ob = new RefTest();
int a=10;
Console. WriteLine("a before call: " +a);
ob.sqr(ref a);
Console. WriteLine("a after call: " + a).
}
}
Két qua sau khi chay chuong trinh trên là
a before call: 100
aftercal: 10
a before call: 10
a after call: 100
a before call: 10
a after call: 10
a before call: 100
‘a after call: 100
Trong các kiểu dữ liệu sau kiểu dữ liệu nào thuộc kiểu GIÁ TRỊ?
interface
array
string
int
Trong các kiểu dữ liệu sau kiểu dữ liệu nào thuộc kiểu DỮ LIỆU THAM CHIẾU
int
bool
double
object
Cách tiếp cận trong lập trình hướng đối tượng là ?
Theo hướng chia để trị
Dự trên nền tảng các đối tượng
Theo hướng từ trên xuống ( Top - Down)
Chủ yếu dựa vào việc phân tách các chức năng chính của bài toán thành các chức năng đơn giản hơn
using System;
class Decompose {
public int parts(double n. out double frac) {
int whole;
whole = (inf) n;
frac =n -whole;
return whole;
}
}
class MainClass {
public static void Main() {
Decompose ob = new Decompose():
int i;
double f;
i= ob.parts(10.125, out f);
Console. WriteLine("Integer portion is " +i):
Console. WriteLine(" Fractional part is " +f);
}
}
Integer portion is 0.125
Fractional part is 10
Integer portion is 10
Fractional part is 10
Integer portion is 10
Fractional part is 0.125
Integer portion is 10
Fractional part is 9.875
Trong các phát biểu sau phát biểu nào sai ?
Quên trả lại giá trị cho phương thức khi phương thức cần phải trả lại một giá trị
Đặt dấu ; sau khi báo phương thức sinh ra lỗi
Khai báo phương thức bên ngoài một lớp hay bên trong một phương thức khác là lỗi
Kiểu và số lượng các tham số trong lời gọi phương thức không phải giống với khai báo phương thức
using System;
class RefTest {
public void sqr(ref int i) {
i=i*i;
}
}
class MainClass {
public static void Main() {
RefTest ob = new RefTest();
int a=10;
Console. WriteLine("a before call: " + a);
ob.sqr(ref a);
Console. WriteLine("a after call: " + a);
}
}
Kết quả sau khi chạy chương trình trên là
a before call: 100
a after call :10
a before call: 10
a after call: 100
a before call: 10 |
a after call: 10
a before call: 100
a after call: 100
Khi khai báo thành phần dữ liệu của một lớp nếu không có từ khoá nêú không có từ khoá đặc tả truy cập thì mặc định là
public
internal
private
protected
using System;
class Example {
public static void Main() {
int x;
x= 10;
if (x == 10) {
int y=20;
Console. WriteLine("x and y: "+x +" " + y);
}
Console. WriteLine("x is {0}, is {1} ",x,y):
}
}
Báo lỗi
x and y : 10 20
x is 10, y is 20
x and y : 10 20
x is 10, y is 0
x and y: 10 20
x is 20, y is 10
Trong các khai báo thành phần dữ liệu của một lớp khai báo nào đúng ?
private int a = 10;
protected double internal a = 10;
public int static a = 10;
int static a = 10;
Sự khác nhau giữa thành phần dữ liệu của một lớp và biến là
Thành phần dữ liệu của một lớp (field) phải khởi tạo mới sử dụng được còn biến nếu không khởi tạo sẽ nhận giá trị mặc định
Thành phần dữ liệu của một lớp (field) nếu không được khởi tạo sẽ nhận giá trị mặc định còn biến thì phải khởi tạo giá trị mới sử dụng được
Chỉ khác nhau ở vị trí khao báo
Không có sự khác nhau
Cho khai báo thành phần dữ liệu của một lớp như sau:
private int a ;
Sau đó in biến a ra màn hình thì giá trị của biến a mặc định là bao nhiêu
Máy báo lỗi
0
-32768
32767
Trong ngôn ngữ lập trình C#
Không hỗ trợ kế thừa
Hỗ trợ cả đơn kế thừa và đa kế thừa
Hỗ trợ đa kế thừa
Chỉ hỗ trợ đơn kế thừa
class Point
{
private double x,y;
public Point() // 1
{
x=y=0;
}
public Point(double x, double y) // 2
{
this.x=x;
this.y=y:
}
public Point(Point d) // 3
{
x=d.x;
y=d.y:
}
public Point1(double x) // 4
{
this.x=x;
y=0;
}
}
1
2
3
4
Kiểu dữ liệu tham chiếu được lưu trữ trong
Trong bộ nhớ Stack
Trong bộ nhớ Heap
ổ cứng
Không phải các kiểu trên
class Vidu{
private int x=10;
private static int y = 0;
public Vidu () {
y++;
}
public void InSoDT()
t
Console. WriteLine("So doi tong: {0)", y);
}
}
class Test
{
public static void Main()
{
Vidu vd1= new Vidu();
vd1.InSoDT();
Vidu vd2= new Vidu();
vd2.InSeDT();
Console. ReadKey();
}
}
Cho biết kết quả in ra màn hình
So doi tuong: 0
So doituong: 1
So doi tuong: 0
So doi tuong: 0
So doi tuong: 1 |
‘So doi tuong: 1
So doi tuong: 1
So doi tuong: 2
Khi một lớp con ghi đè một phương thức, từ khoá nào có thể được sử dụng để chỉ định
new
vitural
sealed
override
Một lớp con có thể kế thức từ bao nhiêu lớp cha trong C#
Nhiều hơn 2
Vô hạn
1
2
Phương thức abstract trong lớp cha yêu cầu lớp con phải
Ghi đè phương thức đó
Làm cho phương thức trở thành sealed
Để trống
Không làm gì cả
Trong kế thừa, thuộc tính nào có thể được truy cập bởi lớp con?
Internal
private
private and protected
protected
using System;
class Point
{
public Point(int x, int y)
{
thisx =x;
this.y = y;
}
public void GetPoint(out int x, out int y)
{
x= thisx; |
y= this.y;
}
int x;
inty;
}
class MainClass
{
public static void Main()
{
Point myPoint = new Point(10, 15);
int x;
int y;
myPoint.GetPoint(out x, out y);
Console. WriteLine(“myPoint( {0}. {1}". x.y):
}
}
Kết quả chạy chương trình
myPoint(15, 10)
myPoint(10, 10)
myPoint(15, 15)
myPoint(10, 15)
Phương thức nào sau đây không thẻ bị ghi đè trong lớp con
Phương thức sealed
Phương thức protected
Phương thức public
Phương thức vitural
Những phương thức trong một lơp mà không có triển khai phần thân thì phải khai báo bằng từ khoá
abstract
new
vitural
override
Bên trong phương thức nào dưới đây không được sử dụng từ khoá this
Phương thức tạo dựng
Phương thức tĩnh
Phương thức thường
Phương thức không trả về giá trị
Kế thừa trong C# cho phép
Tạo ra nhiều lớp từ một lớp đã tồn tại
Không cho phép chia sẻ thuộc tính giữa các lớp
Tạo ra một lớp mới từ một lớp đã tồn tại
Không có ý nghĩa trong lập trình
Tất cả phương thức trong interface đều có mức truy cập
public
protected
public hoặc protected
private hoặc protected
Khi một lớp kế thừa từ một lớp khác, nó có thể truy cập
Chỉ các thành viên public và protected của lớp cha
Không có thành viên nào
Tất cả các thành viên của lớp cha
Chỉ các thành viên private của lớp cha
class Point
{
private double x,y;
public Point() // 1
{
x=y=0; |
}
public Point(double x, double) //2
{
this. x=x;
this.y=y;
i |
public Point(Point d) // 3
{
x=d.x; |
y=d.y: |
}
public Point1(double x) // 4 |
{
this.x = x:
y=0;
}
}
1
2
3
4
Kế thừa đa cấp là gì
Một lớp kế thừa từ nhiều lớp cha
Một lớp kế thừa từ lớp cha và không có lớp con
Không có ý nghĩa
Một lớp kế thừa một lớp cha, sau đó lớp con có thể được kế thừa thêm
Khi nào bạn nên sử dụng kế thừa
Khi các lớp có mối quan hệ là "là một"
Khi bạn có muốn tránh lặp mã
Khi các lớp có mối quan hệ "là một" và khi bạn muốn tránh lặp mã
Khi bạn cần tạo một thư viên
Khi bạn không muốn xử lý ngoại lệ và muốn ném lại nó, bạn sử dụng từ khoá nào
rethrow
catch
continue
throw
Khối finally trong C#được sử dụng để
Chỉ chạy khi không có ngoại lệ
Xử lý ngoại lệ
Không có tác dụng
Thực hiện mã dù có ngoại lệ hay không
Trong C#, bạn có thể sử dụng interface nào để xử lý ngoại lệ
IErrorHandler
IException
Không có interface nào
Icomparable
Khi một ngoại lệ được ném ra và không bị bắt, chương trình sẽ
Chuyển sang khối catch
Không có hành động gì
Dừng lại
Tiếp tục chạy
Một phương thức có thể trả về kiểu dữ liệu nào dể biểu thị việc có thể ném ngoại lệ
Không có kiểu nào
void
int
string
Khi nào bạn nên sử dụng khối try-catch trong C#
Khi bạn muốn kiểm soát các lỗi runtime
Khi bạn muốn tránh lỗi biên dịch
Khi bạn muốn dừng chương trình
Khi bạn không muốn sử dụng ngoại lệ
Phương thức nào sau đây được sử dụng để ném một ngoại lệ trong C#
trigger
throw
raise
catch
Để xử lý nhiều ngoại lệ khác nhau trong một khối try, bạn có thể
Sử dụng nhiều khối catch
Sử dụng khối finally
Sử dụng một khối catch
Không thể xử lý nhiều ngoại lệ
Để xử lý ngoại lệ trong C#, bạn cần có ít nhất 1 trong các phần nào sau đây
catch
finally
try
try hoặc catch
Khi gọi một phương thức ném ngoại lệ, bạn nên
Không cần làm gì cả
Kiểm tra xem phương thức có ném ngoại lệ không
Chỉ sử dụng khối finally
Luôn luôn sử dụng khối try-catch
Một phương thức có thể ném ngoại lê được chỉ định bằng từ khoá nào
exception
throws
return
throw
Khi ném một ngoại lệ bạn có thể chỉ định thông điệp bằng cách nào
new Exception("Thông điệp")
All of the above
Exception("Thông điệp")
throw Exception("Thông điệp")
C# sử dụng từ khoá nào để khai báo một ngoại lệ
throw
catch
exception
try
Để tạo một ứng dụng xử lý ngoại lệ mạnh mẽ, bạn nên
Chỉ sử dụng try
Chỉ bắt ngoại lệ cụ thể
Không sử dụng try-catch
Bắt tất cả các ngoại lệ
Lớp nào trong C# là lớp cơ sở cho tất cả các ngoại lệ
SystemException
ApplicationException
Exception
Throwable
Khi một lớp cha có một phương thức abstract, lớp con phải
Để trống
Không làm gì cả
Tạo phương thức mới
Ghi đè phương thức đó
Từ khoá nào được sử dụng để chỉ định rằng một phương thức không thể bị ghi đè trong lớp con
vitural
sealed
abstract
override
Phương thức ảo có thể được ghi đè bởi
Cả hai lớp
Chỉ trong lớp con
Chỉ trong lớp cha
Không có lớp nào
Khi một phương thức được đánh dấu là ảo, lớp con có thể
Tất cả các phương án trên
Tạo một phương thức mới với tên khác
Ghi đè phương thức
Không ghi đè phương thức
Lợi ích của đa hình là gì
Giúp tăng tính linh hoạt của mã
Tất cả phương án trên
Giảm độ phức tạp của mã
Tăng cường khả năng mở rộng
Nếu một lớp có phương thức ảo nhưng không ghi đè, phương thức nào sẽ được gọi
Tuỳ thuộc vào biến tham chiếu
Phương thức lớp cha
Không có phương thức nào
Phương thức lớp con
Phương thứ abstract là gì?
Phương thức có thân
Phương thức không thể ghi đè
Không có phương thức abstract
Phương thức không có thân
Hàm ảo trong C# được khai báo bằng từ khoá?
sealed
virtual
abstract
override
Từ khoá nào được sử dụng trong lớp con để ghi đè phương thức của lớp cha?
base
override
virtual
new
Khi bạn gọi một phương thức ảo từ một biến kiểu cha, phương thức nào được thực thi?
Không có phương thức trên
Phương thức trong lớp cha
Tuỳ thuộc vào kiểu tham chiếu
Phương thức trong lớp con
Một phương thức ảo có thể được sử dụng trong
Lớp cha và lớp con
Lớp cha
Không có lớp nào
Lớp con
Đa hình trong lập trình hướng đối tượng cho phép?
Không có ý nghĩa
Sử dụng nhiều kiểu dữ liệu khác nhau
Sử dụng nhiều kiểu dữ liệu khác nhau và Ghi đè phương thức trong lớp con
Ghi đè phương thức trong lớp con
Khi lớp con ghi đè một phương thức ảo, phương thức đó có thể có:
Tất cả các phương án trên
Kiểu trả về khác
Tên khác
Tham số khác
Phương thức virtual có thể được khai báo trong
Chỉ trong lớp cha
Không có lớp nào
Chỉ trong lớp con
Trong cả hai lớp
Cú pháp nào sau đây là chính xác để khai báo một phương thức ảo trong C#?
public new...
public virtual...
public abstract...
public override...
Trong đa hình, khái niệm "tính ngữ " có nghĩa là gì?
Một hình thức
Không có hình thức
Nhiều hình thức
Tất cả các hình thức
Khi lớp con ghi đè một phương thức của lớp cha, lớp cha có thể vẫn có thể gọi phương thức đó bằng từ khoá nào?
parent
base
call
super
Khi lớp cha có một phương thức ảo, lớp con phải
Tạo phương thức mới
Để trống
Ghi đè phương thức đó
Không làm gì cả
Đa hình kiểu nào không phải là một phần của đa hình trong C#
Đa hình qua sự kiện
Đa hình thời gian chạy
Đa hình qua kiểu dữ liệu
Đa hình thời gian biên dịch
Một lớp có thể kế thừa từ bao nhiêu lớp cha trong C#
Nhiều hơn 2
Vô hạn
2
1
Để khai báo và tạo đối tượng ta sử dụng cú pháp nào trong các cú pháp sau:
Tenlop Tendoituong = null;
Tenlop Tendoituong;
Tendoituong = new Tenlop();
Tenlop Tendoituong = new Tenlop();
Cả 3 cách trên
Từ khoá nào chỉ cho phép truy cập bên trong của lớp đó
protected
internal
public
private
Trong kế thừa, thuộc tính nào có thể được truy cập bởi lớp con?
internal
private và protected
protected
private
Đặc điểm nào sau đây không phải là của kế thừa?
Tái sử dụng mã
Tạo ra một cấu trúc phân cấp
Tăng cường tính bảo mật
Tăng cường khả năng mở rộng
Từ khoá nào được sử dụng để chỉ định một lớp kế thừa từ lớp khác trong C#
base
inherit
extends
:
Trong C#, lớp con có thể kế thừa từ
Các interface
Một lớp cha
Nhiều lớp cha
Một lớp cha và các interface
Kế thừa đa cấp là gì?
Không có ý nghĩa
Một lớp kế thừa từ nhiều lớp cha
Một lớp kế thừa từ một lớp cha, sau đó lớp con có thể được kế thừa thêm
Một lớp kế thừa từ lớp cha và không có lớp con
Khi lớp con ghi đè một phương thức của lớp cha, nó phải có
Không cần giống nhau
Tên khác nhưng kiểu trả về giống nhau
Cùng tên, cùng kiểu trả về và cùng tham số
Tên khác và tham số khác
Bên trong phương thức nào dưới đây không được sử dụng từ khoá this
Phương thức tĩnh
Phương thức tạo dựng
Phương thức không trả về giá trị
Phương thức thường
using System; // 1
public abstract class MusicPlayer //2
{
public abstract void Play() {return "Start playing";} // 3
public void EndPlay()// 4
{
Console.WriteLine("Finished"); // 5
}
}
Cho biết đoạn chương trình trên câu lệnh nào sinh ra lỗi?
2
3
4
5
Khi nào bạn nên sử dụng kế thừa?
Khi các lớp có mối quan hệ "là một" và Khi bạn muốn tránh lặp mã
Khi các lớp có mối quan hệ "là một"
Khi bạn cần tạo một thư viện
Khi bạn muốn tránh lặp mã
Khi một lớp kế thừa từ lớp khác, nó có thể truy cập:
tất cả các thành viên của lớp cha
Chỉ các thành viên của lớp cha
Không có thành viên nào
Chỉ các thành viên public và protected của lớp cha
Từ khoá nào được sử dụng để gọi đến phương thức của lớp cha trong C#
parent
call
base
super
Person name is
Bill Gate
Employee name is Bill Gate
Person name is Bill Gate
Kế thừa trong C# cho phép
Tạo ra nhiều lớp từ một lớp đã tồn tại
Không có ý nghĩa trong lập trình
Không cho phép chia sẻ thuộc tính giữa các lớp
Tạo ra một lớp từ một lớp đã tồn tại
