SỰ KHÁC BIỆT CỦA INHERITANCE VÀ POLYMORPHISM TRONG JAVA

Tính thừa kế (Inheritance) vào java

Kế quá là một trong lao động chính đặc biệt của OOP.. ( Lập trình hướng đối tượng người sử dụng ). Đây là phương pháp vào java nhưng mà một tấm được phnghiền thừa kế những tính nnạp năng lượng...

Bạn đang xem: Sự khác biệt của inheritance và polymorphism trong java


Kế thừa là một lao động chính đặc biệt quan trọng của OOP (Lập trình hướng đối tượng). Đây là qui định vào java mà lại một tấm được phép kế thừa những tác dụng (ngôi trường cùng phương thức) của lớp khác. ... Super Class: Lớp tất cả những hào kiệt được kế thừa được hotline là lớp phụ thân (hoặc lớp đại lý hoặc lớp cha).


*

Ý tưởng sau sự thừa kế trong Java là chúng ta có thể tạo nên những lớp new được kiến tạo dựa vào những lớp hiện gồm. Lúc các bạn kế thừa xuất phát từ một lớp hiện nay có, bạn có thể sử dụng lại các thủ tục cùng ngôi trường của lớp phụ thân. Hơn nữa, chúng ta cũng có thể thêm những thủ tục cùng trường bắt đầu vào lớp hiện giờ của bản thân mình.

Tại sao áp dụng kế thừa vào java

Đối với ghi đè cách tiến hành (cho nên vì thế có thể có được tính đa hình thời hạn chạy).Để hoàn toàn có thể tái áp dụng mã.

Thuật ngữ áp dụng vào kế thừa

Super Class: Lớp có các kĩ năng được kế thừa được điện thoại tư vấn là lớp cha (hoặc lớp cửa hàng hoặc lớp cha).Sub Class: Lớp thừa kế lớp không giống được hotline là lớp nhỏ (hoặc lớp dẫn xuất, lớp mở rộng hoặc lớp con). Lớp nhỏ có thể thêm những ngôi trường cùng phương thức của riêng biệt nó ngoài những ngôi trường với phương thức của lớp cha.Reusability: Kế quá cung cấp có mang “kĩ năng tái sử dụng”, tức là lúc chúng ta mong muốn tạo ra một lớp new và đã bao gồm một lớp gồm một số mã nhưng bọn họ ước ao, bạn có thể đem lớp bắt đầu của bản thân mình trường đoản cú lớp hiện nay bao gồm. Bằng phương pháp này, Cửa Hàng chúng tôi đang áp dụng lại các ngôi trường với thủ tục của lớp hiện tại gồm.

Cú pháp knhì báo kế thừa

class derived-class extends base-class //methods và fields Ví dụ: Trong ví dụ kế thừa tiếp sau đây, lớp Xe đạp là lớp cửa hàng, lớp MountainBike là lớp dẫn xuất mở rộng lớp Xe đạp và lớp Test là lớp tài xế nhằm chạy công tác.

Bicycle.javapublic class Bicycle public int gear; public int speed; public Bicycle(int gear, int speed) this.gear = gear; this.tốc độ = speed; public void applyBrake(int decrement) tốc độ -= decrement; public void speedUp(int increment) tốc độ += increment; MountainBike.javapublic class MountainBike extends Bicycle public int seatHeight; public MountainBike(int gear, int tốc độ, int startHeight) super(gear, speed); seatHeight = startHeight; Kế quá đơn: Trong thừa kế 1-1, những lớp bé thừa kế các kỹ năng của một tờ thân phụ. Trong hình hình ảnh bên dưới, lớp A vào vai trò là lớp đại lý đến lớp dẫn xuất B.

Xem thêm: Con Gì Mình Đồng Da Sắt. Hai Con Mắt Trên Lưng. Cái Chân Giữa Bụng. Là Gì?

Cú pháp:

class A

public int name;

class B extends A

Sau đấy là ví dụ thừa kế đối kháng.

Single Inheritanceclass one public void print_geek() System.out.println("Geeks"); class two extends one public void print_for() System.out.println("for"); public class Main { public static void main(String<> args) { two g = new two(); g.print_geek(); g.print_for(); g.print_geek(); Kế quá Đa cấp: Trong Kế thừa Đa cấp cho, một tấm dẫn xuất vẫn kế thừa một tấm cơ sở với cũng giống như lớp dẫn xuất cũng chuyển động như lớp cửa hàng so với lớp khác. Trong hình hình họa dưới, lớp A đóng vai trò là lớp cơ sở mang lại lớp dẫn xuất B, lớp này đã đóng vai trò là lớp cơ sở cho lớp dẫn xuất C.

Kế thừa Đa cấpclass one public void print_geek() System.out.println("Geeks"); class two extends one public void print_for() System.out.println("for"); class three extends two public void print_geek() System.out.println("Geeks"); // Drived classpublic class Main public static void main(String<> args) three g = new three(); g.print_geek(); g.print_for(); g.print_geek(); Kế thừa phân cấp: Trong Kế thừa phân cấp cho, một tờ vào vai trò là lớp cha (lớp cơ sở) đến nhiều hơn nữa một lớp bé. Trong hình dưới đây, lớp A nhập vai trò là lớp các đại lý đến lớp dẫn xuất B, C và D.

phần lớn kế thừa (Thông qua những giao diện): Trong Nhiều thừa kế, một tấm có thể có tương đối nhiều hơn một tờ thân phụ với kế thừa các tài năng từ bỏ toàn bộ các lớp phụ vương. Xin xem xét rằng Java ko cung cấp những thừa kế với những lớp. Trong java, bạn cũng có thể đạt được rất nhiều thừa kế chỉ thông qua Giao diện. Trong hình hình họa bên dưới, Lớp C có xuất phát trường đoản cú giao diện A và B.

Thừa kế lai (Through Interfaces): Là sự phối hợp của nhị hoặc nhiều phong cách vượt kế bên trên. Vì java ko hỗ trợ các thừa kế cùng với những lớp, đề xuất cũng bắt buộc thừa kế kết phù hợp với những lớp. Trong java, chúng ta có thể đã đạt được vượt kế lai chỉ trải qua Giao diện.

Tính năng thừa kế trong Java


Lớp phụ vương khoác định: Ngoại trừ lớp Object, không tồn tại lớp thân phụ, mọi lớp đều có một với duy nhất lớp thân phụ trực tiếp (kế thừa đơn). Trong ngôi trường hợp không tồn tại bất kỳ lớp phụ thân rõ ràng làm sao khác, phần đông lớp rất nhiều điềm nhiên là 1 lớp con của lớp Đối tượng.Lớp phụ vương chỉ có thể là một: Lớp thân phụ rất có thể tất cả ngẫu nhiên số lượng lớp nhỏ làm sao. Nhưng một tờ nhỏ chỉ có thể bao gồm một tấm thân phụ. Vấn đề này là vì Java không cung ứng các kế thừa cùng với những lớp. Mặc cho dù với các hình ảnh, nhiều tính thừa kế được cung ứng bởi vì java.Cấu trúc kế thừa: Một lớp bé kế thừa tất cả những thành viên (ngôi trường, phương thức với những lớp lồng nhau) trường đoản cú lớp phụ thân của nó. Các hàm chế tạo ra chưa phải là member, do vậy bọn chúng không được thừa kế bởi vì những lớp bé, mà lại hàm chế tạo ra của lớp cha rất có thể được Call từ lớp con.Kế vượt thành viên riêng: Một lớp nhỏ không kế thừa các thành viên riêng rẽ của lớp phụ vương của nó. Tuy nhiên, giả dụ lớp thân phụ bao gồm các cách làm công khai hoặc được bảo đảm (nhỏng getters với setters) nhằm truy vấn các ngôi trường riêng biệt tư của chính nó, thì những cách làm này cũng hoàn toàn có thể được sử dụng do lớp con.