Thừa Kế Và đa Hình Trong Java - Openplanning
Có thể bạn quan tâm
- Tất cả tài liệu
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Spring Boot
- Spring Cloud
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- Ubuntu
- Solaris
- Mac OS
- VPS
- Git
- SAP
- Amazon AWS
- Khác
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
- Giới thiệu
- Class, cấu tử và đối tượng (Class, Constructor, instance)
- Thừa kế trong java
- Tính đa hình trong Java
1. Giới thiệu
Thừa kế và đa hình (Inheritance & polymorphism) - đây là một khái niệm vô cùng quan trọng trong Java. Mà bạn bắt buộc phải hiểu nó.2. Class, cấu tử và đối tượng (Class, Constructor, instance)
Bạn cần hiểu một cách rạch ròi về class, cấu tử (constructor) và đối tượng trước khi bắt đầu tìm hiểu quan hệ thừa kế trong java. Chúng ta xem class Person, mô tả một con người với các thông tin tên, năm sinh, nơi sinh.Person.javapackage org.o7planning.tutorial.inheritance.basic; public class Person { // Trường name - Thông tin tên người. private String name; // Trường bornYear - thông tin năm sinh private Integer bornYear; // Trường placeOfBirth - thông tin nơi sinh. private String placeOfBirth; // Constructor có 3 tham số. // Mục đích nhằm để gán các giá trị cho các trường của Person. // Chỉ định rõ tên, năm sinh, nơi sinh của một người. public Person(String name, Integer bornYear, String placeOfBirth) { this.name = name; this.bornYear = bornYear; this.placeOfBirth = placeOfBirth; } // Constructor có 2 tham số. // Mục đích gán các giá trị cho 2 trường tên và năm sinh cho Person. // Nơi sinh không được gán. public Person(String name, Integer bornYear) { this.name = name; this.bornYear = bornYear; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getBornYear() { return bornYear; } public void setBornYear(Integer bornYear) { this.bornYear = bornYear; } public String getPlaceOfBirth() { return placeOfBirth; } public void setPlaceOfBirth(String placeOfBirth) { this.placeOfBirth = placeOfBirth; } }PersonDemo.javapackage org.o7planning.tutorial.inheritance.basic; public class PersonDemo { public static void main(String[] args) { // Đối tượng: Thomas Edison. Person edison = new Person("Thomas Edison", 1847); System.out.println("Info:"); System.out.println("Name: " + edison.getName()); System.out.println("Born Year: " + edison.getBornYear()); System.out.println("Place Of Birth: " + edison.getPlaceOfBirth() ); // Đối tượng: Bill Gates Person billGates = new Person("Bill Gate", 1955, "Seattle, Washington"); System.out.println("Info:"); System.out.println("Name: " + billGates.getName()); System.out.println("Born Year: " + billGates.getBornYear()); System.out.println("Place Of Birth: " + billGates.getPlaceOfBirth()); } }Phân biệt Class, cấu tử (constructor) và đối tượng:Lớp Person mô phỏng một lớp người, nó là một thứ gì đó trừu tượng, nhưng nó có các trường để mang thông tin, trong ví dụ trên là tên, năm sinh, nơi sinh. Cấu tử (Constructor) - Người ta còn gọi là "Phương thức khởi tạo"- Cấu tử luôn có tên giống tên lớp.
- Một class có một hoặc nhiều cấu tử.
- Cấu tử có hoặc không có tham số, cấu tử không có tham số còn gọi là cấu tử mặc định.
- Cấu tử được sử dụng để tạo ra một đối tượng của lớp.
3. Thừa kế trong java
Chúng ta cần một vài class tham gia vào minh họa.- Animal: Class mô phỏng một lớp Động vật.
- Duck: Class mô phỏng lớp vịt, là một class con của Animal.
- Cat: Class mô phỏng lớp mèo, là một class con của Animal
- Mouse: Class mô phỏng lớp chuột, là một class con của Animal.
- public abstract String getAnimalName();
- Về bản chất nghĩa là bạn muốn tạo một đối tượng động vật, bạn cần tạo từ một loại đông vật cụ thể, trong trường hợp này bạn phải khởi tạo từ cấu tử (constructor) của Cat, Mouse hoặc Duck.
4. Tính đa hình trong Java
Bạn có một con mèo nguồn gốc châu Á (AsianCat), bạn có thể nói nó là một con mèo (Cat) hoặc nói nó là một con vật (Animal) đó là một khía cạnh của từ đa hình. Hoặc một ví dụ khác: Trên lý lịch của bạn ghi rằng bạn là một người châu Á, trong khi đó bạn thực tế là một người Việt Nam. Ví dụ dưới đây cho bạn thấy cách hành sử giữa khai báo và thực tếClass AsianCat là một class thừa kế từ Cat.AsianCat.javapackage org.o7planning.tutorial.inheritance.animal; public class AsianCat extends Cat { public AsianCat(String name, int age, int height) { super(name, age, height); } // Ghi đè (override) phương thức của lớp cha (Cat) @Override public String getAnimalName() { return "Asian Cat"; } }Tính đa hình của Java được giải thích trong hình minh họa dưới đây:PolymorphismDemo.javapackage org.o7planning.tutorial.polymorphism; import org.o7planning.tutorial.inheritance.animal.AsianCat; import org.o7planning.tutorial.inheritance.animal.Cat; public class PolymorphismDemo { public static void main(String[] args) { Cat cat1 = new Cat("Tom", 3, 20); Cat cat2 = new AsianCat("ATom", 2, 19); System.out.println("Animal Name of cat1: " + cat1.getAnimalName()); System.out.println("Animal Name of cat2: " + cat2.getAnimalName()); } }Kết quả chạy ví dụ:Animal Name of cat1: Cat Animal Name of cat2: Asian CatJava cơ bản
- Tùy biến trình biên dịch java xử lý Annotation của bạn (Annotation Processing Tool)
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Hướng dẫn và ví dụ Java WeakReference
- Hướng dẫn và ví dụ Java PhantomReference
- Hướng dẫn nén và giải nén trong Java
- Cấu hình Eclipse để sử dụng JDK thay vì JRE
- Phương thức String.format() và printf() trong Java
- Cú pháp và các tính năng mới trong Java 5
- Cú pháp và các tính năng mới trong Java 8
- Hướng dẫn sử dụng biểu thức chính quy trong Java
- Hướng dẫn lập trình đa luồng trong Java - Java Multithreading
- Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
- Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu
- Lấy các giá trị của các cột tự động tăng khi Insert một bản ghi sử dụng JDBC
- Hướng dẫn và ví dụ Java Stream
- Functional Interface trong Java
- Giới thiệu về Raspberry Pi
- Hướng dẫn và ví dụ Java Predicate
- Abstract class và Interface trong Java
- Access modifier trong Java
- Hướng dẫn và ví dụ Java Enum
- Hướng dẫn và ví dụ Java Annotation
- So sánh và sắp xếp trong Java
- Hướng dẫn và ví dụ Java String, StringBuffer và StringBuilder
- Hướng dẫn xử lý ngoại lệ trong Java - Java Exception Handling
- Hướng dẫn và ví dụ Java Generics
- Thao tác với tập tin và thư mục trong Java
- Hướng dẫn và ví dụ Java BiPredicate
- Hướng dẫn và ví dụ Java Consumer
- Hướng dẫn và ví dụ Java BiConsumer
- Bắt đầu với Java cần những gì?
- Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK
- Cài đặt Java trên Windows
- Cài đặt Java trên Ubuntu
- Cài đặt OpenJDK trên Ubuntu
- Cài đặt Eclipse
- Cài đặt Eclipse trên Ubuntu
- Học nhanh Java cho người mới bắt đầu
- Lịch sử của bit và byte trong khoa học máy tính
- Các kiểu dữ liệu trong Java
- Các toán tử Bitwise
- Câu lệnh rẽ nhánh (if else) trong Java
- Câu lệnh rẽ nhánh switch trong Java
- Vòng lặp trong Java
- Mảng (Array) trong Java
- JDK Javadoc định dạng CHM
- Thừa kế và đa hình trong Java
- Hướng dẫn và ví dụ Java Function
- Hướng dẫn và ví dụ Java BiFunction
- Ví dụ về Java encoding và decoding sử dụng Apache Base64
- Hướng dẫn và ví dụ Java Reflection
- Hướng dẫn gọi phương thức từ xa với Java RMI
- Hướng dẫn lập trình Java Socket
- Các nền tảng nào bạn nên chọn để lập trình ứng dụng Java Desktop?
- Hướng dẫn và ví dụ Java Commons IO
- Hướng dẫn và ví dụ Java Commons Email
- Hướng dẫn và ví dụ Java Commons Logging
- Tìm hiểu về Java System.identityHashCode, Object.hashCode và Object.equals
- Hướng dẫn và ví dụ Java SoftReference
- Hướng dẫn và ví dụ Java Supplier
- Lập trình Java hướng khía cạnh với AspectJ (AOP)
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java Collections Framework
- Java API cho HTML & XML
- Các hướng dẫn Java IO
- Các hướng dẫn Java Date Time
- Các hướng dẫn Spring Boot
- Các hướng dẫn Maven
- Các hướng dẫn Gradle
- Các hướng dẫn Java Web Services
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Cloud
Java cơ bản
- Tùy biến trình biên dịch java xử lý Annotation của bạn (Annotation Processing Tool)
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Hướng dẫn và ví dụ Java WeakReference
- Hướng dẫn và ví dụ Java PhantomReference
- Hướng dẫn nén và giải nén trong Java
- Cấu hình Eclipse để sử dụng JDK thay vì JRE
- Phương thức String.format() và printf() trong Java
- Cú pháp và các tính năng mới trong Java 5
- Cú pháp và các tính năng mới trong Java 8
- Hướng dẫn sử dụng biểu thức chính quy trong Java
- Hướng dẫn lập trình đa luồng trong Java - Java Multithreading
- Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
- Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu
- Lấy các giá trị của các cột tự động tăng khi Insert một bản ghi sử dụng JDBC
- Hướng dẫn và ví dụ Java Stream
- Functional Interface trong Java
- Giới thiệu về Raspberry Pi
- Hướng dẫn và ví dụ Java Predicate
- Abstract class và Interface trong Java
- Access modifier trong Java
- Hướng dẫn và ví dụ Java Enum
- Hướng dẫn và ví dụ Java Annotation
- So sánh và sắp xếp trong Java
- Hướng dẫn và ví dụ Java String, StringBuffer và StringBuilder
- Hướng dẫn xử lý ngoại lệ trong Java - Java Exception Handling
- Hướng dẫn và ví dụ Java Generics
- Thao tác với tập tin và thư mục trong Java
- Hướng dẫn và ví dụ Java BiPredicate
- Hướng dẫn và ví dụ Java Consumer
- Hướng dẫn và ví dụ Java BiConsumer
- Bắt đầu với Java cần những gì?
- Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK
- Cài đặt Java trên Windows
- Cài đặt Java trên Ubuntu
- Cài đặt OpenJDK trên Ubuntu
- Cài đặt Eclipse
- Cài đặt Eclipse trên Ubuntu
- Học nhanh Java cho người mới bắt đầu
- Lịch sử của bit và byte trong khoa học máy tính
- Các kiểu dữ liệu trong Java
- Các toán tử Bitwise
- Câu lệnh rẽ nhánh (if else) trong Java
- Câu lệnh rẽ nhánh switch trong Java
- Vòng lặp trong Java
- Mảng (Array) trong Java
- JDK Javadoc định dạng CHM
- Thừa kế và đa hình trong Java
- Hướng dẫn và ví dụ Java Function
- Hướng dẫn và ví dụ Java BiFunction
- Ví dụ về Java encoding và decoding sử dụng Apache Base64
- Hướng dẫn và ví dụ Java Reflection
- Hướng dẫn gọi phương thức từ xa với Java RMI
- Hướng dẫn lập trình Java Socket
- Các nền tảng nào bạn nên chọn để lập trình ứng dụng Java Desktop?
- Hướng dẫn và ví dụ Java Commons IO
- Hướng dẫn và ví dụ Java Commons Email
- Hướng dẫn và ví dụ Java Commons Logging
- Tìm hiểu về Java System.identityHashCode, Object.hashCode và Object.equals
- Hướng dẫn và ví dụ Java SoftReference
- Hướng dẫn và ví dụ Java Supplier
- Lập trình Java hướng khía cạnh với AspectJ (AOP)
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java Collections Framework
- Java API cho HTML & XML
- Các hướng dẫn Java IO
- Các hướng dẫn Java Date Time
- Các hướng dẫn Spring Boot
- Các hướng dẫn Maven
- Các hướng dẫn Gradle
- Các hướng dẫn Java Web Services
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Cloud
Các bài viết mới nhất
- Xử lý lỗi 404 trong Flutter GetX
- Ví dụ đăng nhập và đăng xuất với Flutter Getx
- Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
- Hướng dẫn và ví dụ Flutter multi_dropdown
- Hướng dẫn và ví dụ Flutter flutter_form_builder
- Hướng dẫn và ví dụ Flutter GetX obs Obx
- Hướng dẫn và ví dụ Flutter GetX GetBuilder
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Flutter InkWell
- Bài thực hành Flutter SharedPreferences
- Hướng dẫn và ví dụ Flutter Radio
- Hướng dẫn và ví dụ Flutter Slider
- Hướng dẫn và ví dụ Flutter SkeletonLoader
- Chỉ định cổng cố định cho Flutter Web trên Android Studio
- Hướng dẫn và ví dụ Flutter SharedPreferences
- Tạo Module trong Flutter
- Flutter upload ảnh sử dụng http và ImagePicker
- Bài thực hành Dart http CRUD
- Hướng dẫn và ví dụ Flutter image_picker
- Flutter GridView với SliverGridDelegate tuỳ biến
- Java cơ bản
Từ khóa » Cách Tính đa Hình Trong Java
-
Tính đa Hình Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Tính đa Hình (polymorphism) Trong Java - Góc Học IT
-
Tính đa Hình (Polymorphism) Trong Java - GP Coder (Lập Trình Java)
-
Tính đa Hình (Polymorphism) Trong Java - Freetuts
-
Java Bài 30: Đa Hình (Polymorphism) - Yellow Code Books
-
[Tự Học Java] Tính đa Hình Trong Java »
-
Tính đa Hình Trong Java - Quá Trình Overriding Một Phương Thức
-
Tính đa Hình Trong OOP - KungFu Tech
-
Đa Hình Trong Java - Hoclaptrinh
-
Tính đa Hình Trong Java | Codelearn
-
Tính đa Hình Trong Java - Lập Trình Từ Đầu
-
Java: Đa Hình (Polymorphism) | V1Study
-
Đa Hình Trong Java - Nắm Vững Khái Niệm đa Hình Java
-
Đa Hình Tại Runtime Trong Java - Viblo