Phương thức final

Một phần của tài liệu Lập trình hướng đối tượng trong Java (Trang 88 - 93)

VII. Từ khoỏ final

3.Phương thức final

Một phương thức bỡnh thường cú thể bị ghi đố ở lớp dẫn xuất, đụi khi ta khụng muốn phương thức của ta bị ghi đố ở lớp dẫn xuất vỡ lý do gỡ đú, mục đớch chủ yếu của cỏc phương thức final là trỏnh ghi đố, tuy nhiờn ta thấy rằng cỏc phương thức private sẽ tự động là final vỡ chỳng khụng thể thấy được trong lớp dẫn xuất lờn chỳng khụng thể bị ghi đố, nờn cho dự bạn cú cho một phương thức private là final thỡ bạn cũng chả thấy một hiệu ứng nào

4. Lớp final

Nếu bạn khụng muốn người khỏc kế thừa từ lớp của bạn, thỡ bạn hóy dựng từ khoỏ final để ngăn cản bất cứ ai muốn kế thừa từ lớp này.

đố cỏc phương thức của lớp này, do vậy đừng cố gắng cho một phương thức của lớp final là final

BÀI 6 LỚP CƠ SỞ TRỪU TƯỢNG

Một lớp cơ sở trừu tượng là một lớp chỉ được dựng làm cơ sở cho cỏc lớp khỏc, ta khụng thể tạo ra thể hiện của lớp này, bởi vỡ nú được dựng để định nghĩa một giao diện chung cho cỏc lớp khỏc.

Phương thức trừu tượng

Một lớp trừu tượng cú thể chứa một vài phương thức trừu tượng, do lớp trừu tượng chỉ làm lớp cơ sở cho cỏc lớp khỏc, do vậy cỏc phương thức trừu tượng cũng khụng được cài đặt cụ thể, chỳng chỉ gồm cú khai bỏo, việc cài đặt cụ thể sẽ dành cho lớp con

1. Chỳ ý:

1) nếu trong lớp cú phương thức trừu tượng thỡ lớp đú phải được khai bỏo là trừu tượng

2) nếu một lớp kế thừa từ lớp trừu tượng thỡ: hoặc chỳng phải ghi đố tất cả cỏc phương thức ảo của lớp cha, hoặc lớp đú phải là lớp trừu tượng

BÀI 7 ĐA HèNH THÁI

Đa hỡnh thỏi trong lập trỡnh hướng đối tượng đề cập đến khả năng quyết

định trong lỳc thi hành (runtime) mó nào sẽ được chạy, khi cú nhiều phương thức trựng tờn nhau nhưng ở cỏc lớp cú cấp bậc khỏc nhau.

Chỳ ý: khả năng đa hỡnh thỏi trong lập trỡnh hướng đối tượng cũn được gọi với

nhiều cỏi tờn khỏc nhau như: tương ứng bội, kết ghộp động,..

Đa hỡnh thỏi cho phộp cỏc vấn đề khỏc nhau, cỏc đối tượng khỏc nhau, cỏc phương thức khỏc nhau, cỏc cỏch giải quyết khỏc nhau theo cựng một lược đồ chung. Cỏc bước để tạo đa hỡnh thỏi:

1. Xõy dựng lớp cơ sở ( thường là lớp cơ sở trừu tượng, hoặc là một giao diện), lớp này sẽ được cỏc lớp con mở rộng( đối với lớp thường, hoặc lớp trừu tượng), hoặc triển khai chi tiết ( đối với giao diện ).

2. 2. Xõy dựng cỏc lớp dẫn xuất từ lớp cơ sở vừa tạo. trong lớp dẫn xuất này ta sẽ ghi đố cỏc phương thức của lớp cơ sở( đối với lớp cơ sở thường), hoặc triển khai chi tiết nú ( đối với lớp cơ sở trừu tượng hoặc giao diện).

3. Thực hiện việc tạo khuụn xuống, thụng qua lớp cơ sở, để thực hiện hành vi đa hỡnh thỏi

Khỏi niệm về tạo khuụn lờn, tạo khuụn xuống

• Hiện tượng một đối tượng của lớp cha tham trỏ đến một đối tượng của lớp con

thỡ được gọi là tạo khuụn xuống, việc tạo khuụn xuống luụn được java chấp

thuận, do vậy khi tạo khuụn xuống ta khụng cần phải ộp kiểu tường minh.

• Hiện tượng một đối tượng của lớp con tham trỏ tới một đối tượng của lớp cha

thỡ được gọi là tạo khuụn lờn, việc tạo khuụn lờn là an toàn, vỡ một đối tượng

của lớp con cũng cú đầy đủ cỏc thành phần của lớp cha, tuy nhiờn việc tạo khuụn lờn sẽ bị bỏo lỗi nếu như ta khụng ộp kiểu một cỏch tường minh.

BÀI 8 GIAO DIỆN, LỚP TRONG, GểI

Giao diện là một khỏi niệm được java đưa ra với 2 mục đớch chớnh:

• Để tạo ra một lớp cơ sở thuần ảo, một lớp khụng cú bất cứ hàm nào được cài

đặt (adsbygoogle = window.adsbygoogle || []).push({});

• Thực hiện hành vi tương tự như kế thừa bội, bởi trong java khụng cú khỏi niệm kế thừa bội, như của C++

Lớp trong cho ta một cỏch thức tinh vi để che giấu mó một cỏch tối đa, trong java ta cú thể định nghĩa một lớp bờn trong một lớp khỏc, thậm chớ ta cũn cú thể tạo lớp trong, bờn trong thõn của một phương thức, điều này cho phộp ta cú thể tạo ra cỏc lớp cục bộ, chỉ được sử dụng nội bộ bờn trong một đơn vị đú. Ta khụng thể tạo ra một lớp trong, trong ngụn ngữ C++

I. Giao diện

Từ khoỏ interface đó đưa khỏi niệm abstract đi xa thờm một bước nữa. Ta cú thể nghĩ nú như là một lớp abstract “thuần tuý”, nú cho phộp ta tạo ra một lớp thuần ảo, lớp này chỉ gồm tập cỏc giao diện cho cỏc lớp muốn dẫn xuất từ nú, một interface cũng cú thể cú cỏc trường, tuy nhiờn java tự động làm cỏc trường này thành static và final

Để tạo ra một interface, ta dựng từ khoỏ interface thay vỡ từ khoỏ class. Một interface gồm cú 2 phần: phần khai bỏo và phần thõn, phần khai bỏo cho biết một số thụng tin như: tờn của interface, nú cú kế thừa từ một giao diện khỏc hay khụng. Phần thõn chứa cỏc khai bỏo hằng, khai bỏo phương thức ( nhưng khụng cú cài đặt). Giống như một lớp ta cũng cú thể thờm bổ từ public vào trước định nghĩa của interface. Sau đõy là hỡnh ảnh của một interface.

Nhưng do java tự động làm cỏc trường thành final nờn ta khụng cần thờm bổ từ này, do vậy ta cú thể định nghĩa lại giao diện như sau:

Nhưng do java tự động làm cỏc trường thành final nờn ta khụng cần thờm bổ từ này

public interface StockWatcher {

final String

sunTicker = "SUNW";

final String oracleTicker = "ORCL"; final String ciscoTicker = "CSCO";

void valueChanged(String tickerSymbol, double newValue); }

Một phần của tài liệu Lập trình hướng đối tượng trong Java (Trang 88 - 93)