Thursday, March 12, 2020

Java hướng đối tượng: Tính kế thừa trong java

Kế thừa trong java có thể được định nghĩa là quá trình trong đó một lớp có được các thuộc tính (phương thức và trường) của lớp khác. Với việc sử dụng tính kế thừa, thông tin được quản lý theo thứ tự phân cấp.
Lớp kế thừa các thuộc tính của lớp khác được gọi là lớp con (lớp dẫn xuất, lớp con) và lớp có các thuộc tính được kế thừa được gọi là siêu lớp (lớp cơ sở, lớp cha). extends là từ khóa được sử dụng để kế thừa các thuộc tính của một lớp. Sau đây là cú pháp của từ khóa mở rộng.

Cú pháp
class Super {
   .....
   .....
}
class Sub extends Super {
   .....
   .....
}
Sau đây là một ví dụ minh họa sự kế thừa Java. Trong ví dụ này, bạn có thể quan sát hai lớp là Tính toán và My_Calculation.
Sử dụng từ khóa mở rộng, My_Calculation kế thừa các phương thức phép cộng () và phép trừ () của lớp Tính toán.
Sao chép và dán chương trình sau vào một tệp có tên My_Calculation.java
class Calculation {
   int z;
   public void addition(int x, int y) {
      z = x + y;
      System.out.println("The sum of the given numbers:"+z);
   }
   public void Subtraction(int x, int y) {
      z = x - y;
      System.out.println("The difference between the given numbers:"+z);
   }
}
public class My_Calculation extends Calculation {
   public void multiplication(int x, int y) {
      z = x * y;
      System.out.println("The product of the given numbers:"+z);
   }
   public static void main(String args[]) {
      int a = 20, b = 10;
      My_Calculation demo = new My_Calculation();
      demo.addition(a, b);
      demo.Subtraction(a, b);
      demo.multiplication(a, b);
   }
}
Kết quả
The sum of the given numbers:30
The difference between the given numbers:10
The product of the given numbers:200

Các kiểu kế thừa trong java

Có 3 loại kế thế trong java: đơn kế thừa, đa kế thừa, kế thừa thứ bậc
Khi mọt class được kế thừa từ nhiều class khác được gọi là đa kế thừa, trong java, một class không được phép thừa kế từ nhiều class, nhưng nó có thế sử dụng implement nhieuf interface khác nhau, nhưng khi sử dụng điều này thiwf một interface có thể kế thừa nhiều interface khác.
Sau đây những ví dụ về kế thừa trong java
Kế thừa đơn.
public class Animal {
    public void eat() {
        System.out.println("Ăn...");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("barking...");
    }
}

public class TestInheritance {
    public static void main(String args[]) {
        Dog d = new Dog();
        d.bark();
        d.eat();
    }
}
Kế thừa nhiều cấp
class Animal{
public void eat(){
System.out.println("EAT");
}
}
 class Dog extends Animal{
public void bark(){
System.out.println("BARK");
}
}
 class BabyDog extends Dog{
public void weep(){
System.out.println("WEEP");
}
}
public class ExampleAll {
public static void main(String args[]){
BabyDog baby = new BabyDog();
baby.eat();
baby.bark();
baby.weep();
}
}
Kết quả:
EAT
BARK
WEEP
Thừa kế nhiều thứ bặc
Sau đây là ví dụ thể hiện kế thừa nhiều thứ bặc
class Animal {
    public void eat() {
        System.out.println("eating...");
    }
}

class Dog extends Animal {
    public void bark() {
        System.out.println("barking...");
    }
}

public class Cat extends Animal {
    public void meow() {
        System.out.println("meowing...");
    }
}

public class TestInheritance3 {
    public static void main(String args[]) {
        Cat c = new Cat();
        c.meow();
        c.eat();
    }
}

No comments:

Post a Comment