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

Đa hình trong Java - 155 bài học Java miễn phí hay nhất PDF da hinh trong java

5 126 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 5
Dung lượng 353,25 KB

Nội dung

http://vietjack.com/java/index.jsp Copyright © vietjack.com Đa hình Java Tính đa hình Java khái niệm mà từ thực hành động đơn theo nhiều cách khác Tính đa hình suy từ hai từ Hy Lạp Poly Morphs Poly nghĩa nhiều morphs nghĩa hình, dạng Có hai kiểu đa hình Java: Đa hình compile time đa hình runtime Chúng ta thực tính đa hình Java nạp chồng phương thức ghi đè phương thức Nếu bạn nạp chồng phương thức static Java, ví dụ đa hình compile time Ở chương chúng tập trung vào đa hình runtime Java Điều quan trọng để biết có cách truy cập đối tượng qua biến tham chiếu Một biến tham chiếu kiểu Khi khai báo, kiểu biến tham chiếu khơng thể thay đổi Biến tham chiếu gán cho đối tượng khác cung cấp mà không khai báo final Kiểu biến tham chiếu xác định phương thức mà triệu hồi đối tượng Một biến tham chiếu hướng đến đối tượng với kiểu khai báo kiểu kiểu khai báo Một biến tham chiếu khai báo class interface Đa hình runtime Java Đa hình runtime tiến trình mà lời gọi tới phương thức ghi đè xử lý runtime thay compile time Trong tiến trình này, phương thức ghi đè gọi thông qua biến tham chiếu lớp cha Việc định phương thức gọi dựa đối tượng tham chiếu biến tham chiếu Trước tìm hiểu đa hình runtime, tìm hiểu Upcasting Upcasting gì? Khi biến tham chiếu lớp cha tham chiếu tới đối tượng lớp con, Upcasting Ví dụ: class A{} class B extends A{} A a=new B();//day la upcasting http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Ví dụ đa hình runtime Java Trong ví dụ, tạo hai lớp Bike Splendar Lớp Splendar kế thừa lớp Bike ghi đè phương thức run() Chúng ta gọi phương thức run biến tham chiếu lớp cha Khi tham chiếu tới đối tượng lớp phương thức lớp ghi đè phương thức lớp cha, phương thức lớp triệu hồi runtime Khi việc gọi phương thức định JVM khơng phải Compiler, đa hình runtime class Bike{ void run(){System.out.println("dang chay");} } class Splender extends Bike{ void run(){System.out.println("chay an toan voi 60km");} public static void main(String args[]){ Bike b = new Splender();//day la upcasting b.run(); } } Ví dụ thực đa hình runtime Java Giả sử Bank lớp cung cấp phương thức để lấy lãi suất Nhưng lãi suất lại khác ngân hàng Ví dụ, ngân hàng VCB, AGR CTG cung cấp lãi suất 8%, 7% 9% (Ví dụ có chương ghi đè phương thức khơng có Upcasting) class Bank{ int getRateOfInterest(){return 0;} } class VCB extends Bank{ int getRateOfInterest(){return 8;} } class AGR extends Bank{ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com int getRateOfInterest(){return 7;} } class CTG extends Bank{ int getRateOfInterest(){return 9;} } class Test3{ public static void main(String args[]){ Bank b1=new VCB(); Bank b2=new AGR(); Bank b3=new CTG(); System.out.println("VCB lai suat la: "+b1.getRateOfInterest()); System.out.println("AGR lai suat la: "+b2.getRateOfInterest()); System.out.println("CTG lai suat la: "+b3.getRateOfInterest()); } } Đa hình runtime Java với thành viên liệu Phương thức bị ghi đè khơng thành viên liệu, đa hình runtime khơng thể có thành viên liệu Trong ví dụ sau đây, hai lớp có thành viên liệu speedlimit, truy cập thành viên liệu biến tham chiếu lớp cha mà tham chiếu tới đối tượng lớp Khi truy cập thành viên liệu mà khơng bị ghi đè, ln ln truy cập thành viên liệu lớp cha Qui tắc: Đa hình runtime khơng thể có thành viên liệu class Bike{ int speedlimit=90; } class Honda3 extends Bike{ int speedlimit=150; public static void main(String args[]){ Bike obj=new Honda3(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com System.out.println(obj.speedlimit);//90 } Đa hình runtime Java với kế thừa nhiều tầng (Multilevel) Bạn theo dõi ví dụ sau: class Animal{ void eat(){System.out.println("an");} } class Dog extends Animal{ void eat(){System.out.println("an hoa qua");} } class BabyDog extends Dog{ void eat(){System.out.println("uong sua");} public static void main(String args[]){ Animal a1,a2,a3; a1=new Animal(); a2=new Dog(); a3=new BabyDog(); a1.eat(); a2.eat(); a3.eat(); } } Và: class Animal{ void eat(){System.out.println("animao dang an ");} http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com } class Dog extends Animal{ void eat(){System.out.println("dog dang an ");} } class BabyDog1 extends Dog{ public static void main(String args[]){ Animal a=new BabyDog1(); a.eat(); }} Vì, BabyDog khơng ghi đè phương thức eat(), phương thức eat() lớp Dog() triệu hồi http://vietjack.com/ Trang chia sẻ học online miễn phí Page ...http://vietjack.com /java/ index.jsp Copyright © vietjack.com Ví dụ đa hình runtime Java Trong ví dụ, tạo hai lớp Bike Splendar Lớp Splendar kế thừa lớp Bike ghi đè phương thức... http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com System.out.println(obj.speedlimit);//90 } Đa hình runtime Java với kế thừa nhiều tầng... "+b3.getRateOfInterest()); } } Đa hình runtime Java với thành viên liệu Phương thức bị ghi đè khơng thành viên liệu, đa hình runtime khơng thể có thành viên liệu Trong ví dụ sau đây, hai lớp có

Ngày đăng: 03/12/2017, 01:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN