VietTuts

Tự Học Lập Trình Online

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • MyBatis
  • Java WS
  • C
  • C++
  • C#
  • Python
  • PHP
  • Excel
  • VBA
  • Web
    • JavaScript
    • JQUERY
    • JSON
    • AJAX
    • CSS
    • HTML
    • HTML5
    • Node.js
    • Angular 7
  • SQL
    • MySQL
    • SQL Server
  • Misc
    • Eclipse
    • Phần mềm tiện ích
    • Cấu trúc DL&GT
    • Selenium Test

Java Cơ Bản

Java là gì? Lịch sử Java Các tính năng của Java Cài đặt môi trường Java (cho người mới bắt đầu) Thiết lập PATH cho java Chương trình Hello World JDK, JRE và JVM Biến trong java Các kiểu dữ liệu trong java Ép kiểu (Type casting) Các toán tử trong Java Hệ thống Unicode trong java

Câu Lệnh Điều Khiển

Mệnh đề If-else Mệnh đề Switch-case Vòng lặp For Vòng lặp While Vòng lặp Do-While Break trong java Continue trong java Chương trình java kinh điển

Các Tính Chất Của Java OOPs

Tính đóng gói trong java Tính kế thừa trong java Tính đa hình trong java Nạp chồng phương thức Ghi đè phương thức Overloading vs Overriding

Các Khái Niệm Java OOPs

Tổng quan java OOPs Lớp và đối tượng Package trong java Constructor trong java Từ khóa this trong java Từ khóa super trong java Từ khóa final trong java Từ khóa static trong java Access Modifier trong java Abstract class trong java Interface trong java Abstract vs Interface trong java Lớp Object trong java Object Cloning trong java equals() và hashCode() Array (mảng) trong java Khai báo mảng trong java Duyệt mảng trong java Lớp Wrapper trong java Đệ quy trong java Truyền giá trị và tham chiếu trong java Toán tử instanceof trong java Sử dụng regex trong java

Mô Hình MVC

Mô hình MVC là gì? - Ví dụ login sử dụng mô hình MVC trong Java

Java Programs

Tính giai thừa trong java Check số nguyên tố trong java Dãy số Fibonacci trong java Chuyển đổi hệ cơ số trong java Liệt kê n số nguyên tố đầu tiên trong Java
Java String Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java AWT Java Swing Java I/O Ví Dụ Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Java Math Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java
1 / 3
❮ ❯

Từ khóa super trong java


Từ khóa this trong java
Từ khóa final trong java

Từ khóa super trong java là một biến tham chiếu được sử dụng để tham chiếu trực tiếp đến đối tượng của lớp cha gần nhất.

Bất cứ khi nào bạn tạo ra instance(thể hiển) của lớp con, một instance của lớp cha được tạo ra ngầm định, nghĩa là được tham chiếu bởi biến super.

Trong java, từ khóa super có 3 cách sử dụng như sau:

  1. Từ khóa super được sử dụng để tham chiếu trực tiếp đến biến instance của lớp cha gần nhất.
  2. super() được sử dụng để gọi trực tiếp Constructor của lớp cha.
  3. Từ khóa super được sử dụng để gọi trực tiếp phương thức của lớp cha.

Nội dung chính

  • 1. Tham chiếu trực tiếp đến biến instance của lớp cha.
  • 2. Sử dụng super()
  • 3. super được sử dụng để gọi trực tiếp phương thức của lớp cha.

1. Tham chiếu trực tiếp đến biến instance của lớp cha.

Từ khóa super được sử dụng để tham chiếu trực tiếp đến biến instance của lớp cha.

Ví dụ: khi không sử dụng từ khóa super

class Vehicle {
    int speed = 50;
}

 public class Bike extends Vehicle {
    int speed = 100;

    void display() {
        System.out.println(speed); //in speed của lớp Bike   
    }

    public static void main(String args[]) {
        Bike b = new Bike();
        b.display();
    }
}

Kết quả:

100

Ví dụ: khi sử dụng từ khóa super

class Vehicle {
    int speed = 50;
}

public class Bike2 extends Vehicle {
    int speed = 100;

    void display() {
        System.out.println(super.speed);//in speed của lớp Vehicle  
    }

    public static void main(String args[]) {
        Bike2 b = new Bike2();
        b.display();

    }
}

Kết quả:

50


2. Sử dụng super()

Trong java, super() được sử dụng để gọi trực tiếp Constructor của lớp cha.

class Vehicle {
    Vehicle() {
        System.out.println("Vehicle is created");
    }
}

class Bike2 extends Vehicle {
    Bike2() {
        super();//gọi Constructor của lớp cha  
        System.out.println("Bike is created");
    }

    public static void main(String args[]) {
        Bike2 b = new Bike2();
    }
}

Kết quả:

Vehicle is created
Bike is created
Note: super() được tự động thêm vào mỗi Constructor của class bởi trình biên dịch.
tu-khoa-super-trong-java-1

Như chúng ta đã biết Constructor được tạo ra tự động bởi trình biên dịch nhưng nó cũng thêm super() vào câu lệnh đầu tiên. Nếu bạn tạo Constructor và bạn không có this() hoặc super() ở dòng lệnh đầu tiên, trình biên dịch sẽ cung cấp super() của Constructor.

Một ví dụ khác của từ khóa super nơi super() được cung cấp ngầm định bởi trình biên dịch.

class Vehicle {
    Vehicle() {
        System.out.println("Vehicle is created");
    }
}

public class Bike6 extends Vehicle {
    int speed;

    Bike6(int speed) {
        this.speed = speed;
        System.out.println(speed);
    }

    public static void main(String args[]) {
        Bike6 b = new Bike6(10);
    }
}

Kết quả:

Vehicle is created
10

3. super được sử dụng để gọi trực tiếp phương thức của lớp cha.

Từ khóa super cũng có thể được sử dụng để gọi phương thức của lớp cha. Nó nên được sử dụng trong trường hợp lớp chứa các phương thức tương tự như lớp cha như trong ví dụ dưới đây:

class Person {
    void message() {
        System.out.println("welcome");
    }
}

public class Student16 extends Person {
    void message() {
        System.out.println("welcome to java");
    }

    void display() {
        message();// gọi phương thức message() của lớp hiện tại
        super.message();// gọi phương thức message() của lớp cha
    }

    public static void main(String args[]) {
        Student16 s = new Student16();
        s.display();
    }
}

Kết quả:

welcome to java
welcome

Trong ví dụ trên cả hai lớp Student và Person đều có phương thức message(). Nếu bạn gọi phương thức message() từ lớp Student thì phương thức message của Student sẽ đươc thực thi vì phương thức ở local sẽ được ưu tiên.

Trong TH không có phương thức ở class con giống class cha thì không cần phải sử dụng super. Ví dụ:

class Person {
    void message() {
        System.out.println("welcome");
    }
}

public class Student17 extends Person {

    void display() {
        message();// will invoke parent class message() method
    }

    public static void main(String args[]) {
        Student17 s = new Student17();
        s.display();
    }
}

Kết quả:

welcome

Từ khóa this trong java
Từ khóa final trong java

Bài viết liên quan:

  • Từ khóa this trong java
  • Từ khóa super trong java
  • Từ khóa final trong java
  • Từ khóa static trong java
  • Access Modifier trong Java
  • Tính đóng gói trong java
  • Tính kế thừa trong java
  • Tính đa hình trong java

Recent Updates

Sắp Tết 2024 Rồi! - Còn bao nhiêu ngày nữa là đến tết 2024?Java Swing - Bài tập quản lý sinh viên trong javaLinkedList trong javaArrayList trong javaBài tập java có lời giảiSử dụng Javascript trong HTMLToán tử dấu 2 chấm (::) trong Java 8Lambda Expression - Biểu thức Lambda trong java 8Bài tập Java - Sắp xếp nhanh (Quick Sort) trong JavaBài tập Java - Sắp xếp chèn (Insertion Sort) trong JavaBài tập Java - Sắp xếp nổi bọt (Bubble Sort) trong JavaBài tập quản lý sinh viên trong JavaHashSet trong java

VietTuts on facebook

Học Lập Trình Online Miễn Phí - VietTuts.Vn
Danh Sách Bài Học

Học Java | Hibernate | Spring
Học Excel | Excel VBA
Học Servlet | JSP | Struts2
Học C | C++ | C#
Học Python
Học SQL

Bài Tập Có Lời Giải

Bài tập Java
Bài tập C
Bài tập C++
Bài tập C#
Bài tập Python
Ví dụ Excel VBA

Câu Hỏi Phỏng Vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | Liên hệ | Chính sách - riêng tư | sitemap.html | sitemap_index.xml