Java: Trừu tượng (Abstract) và Đa hình (Polymorphism)


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
package baihoc.truutuongvadahinh;

abstract class Animal{
  int id;
  String name;
  float age;

  abstract void move(); //khai báo phương thức trừu tượng
}

class Cat extends Animal{
  @Override
  void move() {
    System.out.println("Run");
  }
}

class Bird extends Animal{
  @Override
  void move() {
    System.out.println("Fly");
  }
}

class Fish extends Animal{

  @Override
  void move() {
    System.out.println("Swim");
  }
}

class Calculate{
  double add(float a,float b){
    return a+b;
  }

  double add(float a,float b,float c){
    return a+b+c;
  }
}

public class TruuTuongVaDaHinh {
  //Trừu tượng (Abstract): Dùng cho phương thức (hành vi) trong trường hợp phương thức hay hành vi
  //đó không hoặc khó cụ thể hóa được.
  //Thay vì định nghĩa phương thức (hành vi) thì ta khai báo nó sử dụng từ khóa abstract.
  //Khi đó lớp chứa phương thức trừu tượng cũng phải là lớp trừu tượng, nghĩa là cũng phải dùng
  //từ khóa abstract cho lớp đó.
  //Lớp trừu tượng thì không có đối tượng tương ứng, nói cách khác không tạo được đối tượng từ
  //lớp trừu tượng.
  //Lưu ý: Lớp trừu tượng chứa được cả phương thức trừu tượng và phương thức không trừu tượng.
  //Lớp trừu tượng cho phép các lớp khác thừa kế, nhưng phải thực thi (cụ thể hóa) các phương
  //thức trừu tượng của lớp trừu tượng.
  //Ví dụ:
  //Đa hình (Polymorphism): Là kỹ thuật cho phép một đối tượng có thể thể hiện ở nhiều dạng khác
  //nhau, một hành vi có thể được thể hiện ở nhiều kiểu khác nhau.
  //Ví dụ:
  public static void main(String[] args) {
    double d=30;
    float f=40;
    int i=50;
//    d=f;
//    d=i;
//    f=d;//error
//    i=d;//error
    Animal ani=new Cat();//Tạo 1 đối tượng Cat rồi gán cho biến có kiểu Animal
    Cat cat=new Cat();
  }
}
» Tiếp: Interface
« Trước: Chữa bài tập 1 phần thừa kế
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!