Giao diện là một lớp trừu tượng hoàn toàn giúp trừu tượng hóa Java. Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các giao diện trong Java với sự trợ giúp của các ví dụ.

Bạn đang xem : ví dụ về giao diện java

Giao diện là một lớp trừu tượng hoàn toàn. Nó bao gồm một nhóm các phương thức trừu tượng (các phương thức không có phần thân).

Chúng tôi sử dụng từ khóa interface để tạo giao diện trong Java. Ví dụ:

 giao diện Ngôn ngữ {
  public void getType ();

  public void getVersion ();
}  

Đây,

  • Ngôn ngữ là một giao diện.
  • Nó bao gồm các phương thức trừu tượng: getType () getVersion () .

Triển khai một giao diện

Giống như các lớp trừu tượng, chúng ta không thể tạo các đối tượng của giao diện.

Để sử dụng một giao diện, các lớp khác phải triển khai nó. Chúng tôi sử dụng từ khóa implements để triển khai một giao diện.

Ví dụ 1: Giao diện Java

 interface Polygon {
  void getArea (int length, int breadth);
}

// triển khai giao diện Polygon
class Rectangle thực hiện Polygon {

  // thực thi phương thức trừu tượng
  public void getArea (int length, int breadth) {
    System.out.println ("Diện tích hình chữ nhật là" + (chiều dài * chiều rộng));
  }
}

lớp chính {
  public static void main (String [] args) {
    Rectangle r1 = new Rectangle ();
    r1.getArea (5, 6);
  }
}  

Đầu ra

Diện tích của hình chữ nhật là 30 

Trong ví dụ trên, chúng tôi đã tạo một giao diện có tên Polygon. Giao diện chứa một phương thức trừu tượng getArea () .

Ở đây, lớp Rectangle triển khai Polygon. Và, cung cấp việc triển khai phương thức getArea () .

Ví dụ 2: Giao diện Java

 // tạo giao diện
ngôn ngữ giao diện {
  void getName (Tên chuỗi);
}

// lớp thực thi giao diện
class ProgrammingLanguage triển khai Ngôn ngữ {

  // thực thi phương thức trừu tượng
  public void getName (Tên chuỗi) {
    System.out.println ("Ngôn ngữ lập trình:" + tên);
  }
}

lớp chính {
  public static void main (String [] args) {
    Ngôn ngữ ProgrammingLanguage = new ProgrammingLanguage ();
    language.getName ("Java");
  }
}  

Đầu ra

Ngôn ngữ lập trình: Java 

Trong ví dụ trên, chúng tôi đã tạo một giao diện có tên là Ngôn ngữ. Giao diện bao gồm một phương thức trừu tượng getName () .

Ở đây, lớp ProgrammingLanguage triển khai giao diện và cung cấp cách triển khai cho phương thức.

Triển khai nhiều giao diện

Trong Java, một lớp cũng có thể triển khai nhiều giao diện. Ví dụ:

 giao diện A {
  // thành viên của A
}

giao diện B {
  // thành viên của B
}

lớp C thực hiện A, B {
  // các thành viên trừu tượng của A
  // các thành viên trừu tượng của B
}  

Mở rộng Giao diện

Tương tự như các lớp, giao diện có thể mở rộng các giao diện khác. Từ khóa expand được sử dụng để mở rộng giao diện. Ví dụ:

 giao diện Dòng {
  // các thành viên của giao diện Line
}

// mở rộng giao diện
interface Đa giác mở rộng Dòng {
  // các thành viên của giao diện Polygon
  // các thành viên của giao diện Line
}  

Tại đây, giao diện Đa giác mở rộng giao diện Đường. Bây giờ, nếu bất kỳ lớp nào triển khai Polygon, nó sẽ cung cấp các triển khai cho tất cả các phương thức trừu tượng của cả Line và Polygon.

Mở rộng nhiều giao diện

Một giao diện có thể mở rộng nhiều giao diện. Ví dụ:

 giao diện A {
   ...
}
giao diện B {
   ...
}

giao diện C mở rộng A, B {
   ...
}  

Ưu điểm của Giao diện trong Java

Xem Thêm  It's better than Tinder! - viewchild trong angular

Bây giờ chúng ta đã biết giao diện là gì, hãy cùng tìm hiểu về lý do tại sao giao diện được sử dụng trong Java.

  • Tương tự như các lớp trừu tượng, giao diện giúp chúng ta đạt được tính trừu tượng trong Java .

    Ở đây, chúng ta biết getArea () tính diện tích đa giác nhưng cách tính diện tích khác nhau đối với các đa giác khác nhau. Do đó, việc triển khai getArea () là độc lập với nhau.

  • Các giao diện cung cấp thông số kỹ thuật mà một lớp (triển khai nó) phải tuân theo.

    Trong ví dụ trước, chúng tôi đã sử dụng getArea () làm đặc tả bên trong Đa giác giao diện. Điều này giống như thiết lập một quy tắc mà chúng ta có thể có được diện tích của mọi đa giác.

    Giờ đây, bất kỳ lớp nào triển khai giao diện Đa giác đều phải cung cấp triển khai cho phương thức getArea () .

  • Các giao diện cũng được sử dụng để đạt được đa kế thừa trong Java. Ví dụ:
     giao diện Dòng {
    …
    }
    
    giao diện Polygon {
    …
    }
    
    class Rectangle thực hiện Line, Polygon {
    …
    }  

    Ở đây, lớp Rectangle đang triển khai hai giao diện khác nhau. Đây là cách chúng tôi đạt được đa kế thừa trong Java.

Lưu ý : Tất cả các phương thức bên trong giao diện đều là public ngầm định và tất cả các trường đều là public static final . Ví dụ:

 giao diện Ngôn ngữ {
  
  // theo mặc định public static final
  String type = "ngôn ngữ lập trình";

  // theo mặc định là công khai
  void getName ();
}  

các phương thức mặc định trong Java Interfaces

Với việc phát hành Java 8, giờ đây chúng ta có thể thêm các phương thức có triển khai bên trong giao diện. Các phương thức này được gọi là phương thức mặc định.

Để khai báo các phương thức mặc định bên trong giao diện, chúng tôi sử dụng từ khóa default . Ví dụ:

 public default void getSides () {
   // phần thân của getSides ()
}  

Tại sao lại sử dụng phương thức mặc định?

Hãy xem một tình huống để hiểu lý do tại sao các phương thức mặc định được giới thiệu trong Java.

Giả sử, chúng ta cần thêm một phương thức mới vào giao diện.

Chúng tôi có thể thêm phương thức vào giao diện của mình một cách dễ dàng mà không cần triển khai. Tuy nhiên, đó không phải là kết thúc của câu chuyện. Tất cả các lớp của chúng tôi triển khai giao diện đó phải cung cấp triển khai cho phương thức.

Nếu một số lượng lớn các lớp đang triển khai giao diện này, chúng tôi cần theo dõi tất cả các lớp này và thực hiện các thay đổi đối với chúng. Điều này không chỉ tẻ nhạt mà còn dễ xảy ra lỗi.

Để giải quyết vấn đề này, Java đã giới thiệu các phương pháp mặc định. Các phương thức mặc định được kế thừa giống như các phương thức thông thường.

Hãy lấy một ví dụ để hiểu rõ hơn về các phương thức mặc định.

Ví dụ: Phương thức mặc định trong giao diện Java

 interface Polygon {
  void getArea ();

  // phương thức mặc định
  void getSides mặc định () {
    System.out.println ("Tôi có thể lấy các cạnh của một đa giác.");
  }
}

// triển khai giao diện
class Rectangle thực hiện Polygon {
  public void getArea () {
    int length = 6;
    int breadth = 5;
    int area = length * breadth;
    System.out.println ("Diện tích hình chữ nhật là" + diện tích);
  }

  // ghi đè getSides ()
  public void getSides () {
    System.out.println ("Ta có 4 cạnh.");
  }
}

// triển khai giao diện
class Square thực hiện Polygon {
  public void getArea () {
    int length = 5;
    int area = length * length;
    System.out.println ("Diện tích hình vuông là" + diện tích);
  }
}

lớp chính {
  public static void main (String [] args) {

    // tạo một đối tượng Rectangle
    Rectangle r1 = new Rectangle ();
    r1.getArea ();
    r1.getSides ();

    // tạo một đối tượng Square
    Square s1 = new Square ();
    s1.getArea ();
    s1.getSides ();
  }
}  

Đầu ra

Diện tích của hình chữ nhật là 30
Tôi có 4 mặt.
Diện tích của hình vuông là 25
Tôi có thể lấy các cạnh của một đa giác. 

Trong ví dụ trên, chúng tôi đã tạo một giao diện có tên Polygon. Nó có một phương thức mặc định getSides () và một phương thức trừu tượng getArea () .

Ở đây, chúng tôi đã tạo hai lớp Hình chữ nhật và Hình vuông để triển khai Đa giác.

Lớp Rectangle cung cấp việc triển khai phương thức getArea () và ghi đè phương thức getSides () . Tuy nhiên, lớp Square chỉ cung cấp việc triển khai phương thức getArea () .

Bây giờ, trong khi gọi phương thức getSides () bằng đối tượng Rectangle, phương thức ghi đè được gọi. Tuy nhiên, trong trường hợp của đối tượng Square, phương thức mặc định được gọi.

các phương thức riêng và tĩnh trong giao diện

Java 8 cũng đã thêm một tính năng khác để bao gồm các phương thức tĩnh bên trong giao diện.

Tương tự như một lớp, chúng ta có thể truy cập các phương thức tĩnh của một giao diện bằng cách sử dụng các tham chiếu của nó. Ví dụ:

 // tạo giao diện
giao diện Polygon {
  staticMethod () {..}
}

// truy cập phương thức tĩnh
Polygon.staticMethod ();  

Lưu ý : Với việc phát hành Java 9, các phương thức riêng tư cũng được hỗ trợ trong các giao diện.

Chúng tôi không thể tạo các đối tượng của một giao diện. Do đó, các phương thức riêng được sử dụng làm phương thức trợ giúp cung cấp hỗ trợ cho các phương thức khác trong giao diện.

Ví dụ thực tế về giao diện

Hãy xem một ví dụ thực tế hơn về Giao diện Java.

 // Để sử dụng hàm sqrt
nhập java.lang.Math;

giao diện Polygon {
   void getArea ();
  
 // tính chu vi của một Đa giác
   void getPerimeter (int ... bên) {
      chu vi int = 0;
      for (int side: side) {
         chu vi + = bên;
      }

   System.out.println ("Chu vi:" + chu vi);
   }
}

class Triangle thực hiện Polygon {
   int riêng a, b, c;
   đôi riêng tư, khu vực;

// khởi tạo các cạnh của tam giác
   Tam giác (int a, int b, int c) {
      this.a = a;
      this.b = b;
      this.c = c;
      s = 0;
   }

// tính diện tích hình tam giác
   public void getArea () {
      s = (gấp đôi) (a + b + c) / 2;
      area = Math.sqrt (s * (s-a) * (s-b) * (s-c));
      System.out.println ("Diện tích:" + diện tích);
   }
}

lớp chính {
   public static void main (String [] args) {
      Tam giác t1 = new Triangle (2, 3, 4);

// gọi phương thức của lớp Triangle
      t1.getArea ();

// gọi phương thức của Polygon
      t1.getPerimeter (2, 3, 4);
   }
}  

Đầu ra

Diện tích: 2.9047375096555625
Chu vi: 9 

Trong chương trình trên, chúng tôi đã tạo một giao diện có tên Polygon. Nó bao gồm một phương thức mặc định getPerimeter () và một phương thức trừu tượng getArea () .

Chúng tôi có thể tính chu vi của tất cả các đa giác theo cùng một cách nên chúng tôi đã triển khai phần thân của getPerimeter () trong Polygon.

Giờ đây, tất cả các đa giác triển khai Đa giác đều có thể sử dụng getPerimeter () để tính chu vi.

Tuy nhiên, quy tắc tính diện tích là khác nhau đối với các đa giác khác nhau. Do đó, getArea () được đưa vào mà không cần triển khai.

Bất kỳ lớp nào triển khai Đa giác đều phải cung cấp triển khai getArea () .


Xem thêm những thông tin liên quan đến chủ đề ví dụ về giao diện java

8.21 Interface in Java Tutorial with Example

  • Tác giả: Telusko
  • Ngày đăng: 2016-02-02
  • Đánh giá: 4 ⭐ ( 7647 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Multiple inheritance is not allowed in java and a class can only extend one parent

    class. Interfaces provide a form of multiple inheritance. Interfaces are not classes,

    however an interface can extend more than one parent interface.

    Interfaces provide a form of multiple inheritance. A class can extend only one other class.

    Interfaces are limited to public methods and constants with no implementation.

    Check out our website: http://www.telusko.com

    Follow Telusko on Twitter: https://twitter.com/navinreddy20

    Follow on Facebook:
    Telusko : https://www.facebook.com/teluskolearnings
    Navin Reddy : https://www.facebook.com/navintelusko

    Follow Navin Reddy on Instagram: https://www.instagram.com/navinreddy20

    Subscribe to our other channel:
    Navin Reddy : https://www.youtube.com/channel/UCxmkk8bMSOF-UBF43z-pdGQ?sub_confirmation=1
    Telusko Hindi :
    https://www.youtube.com/channel/UCitzw4ROeTVGRRLnCPws-cw?sub_confirmation=1

    Subscribe to the channel and learn Programming in easy way.

    Java Tutorial for Beginners: https://goo.gl/p10QfB

    C Tutorial Playlist : https://goo.gl/8v92pu

    Android Tutorial for Beginners Playlist : https://goo.gl/MzlIUJ

    XML Tutorial : https://goo.gl/Eo79do

    Design Patterns in Java : https://goo.gl/Kd2MWE

    Socket Programming in Java : https://goo.gl/jlMEbg

    Spring MVC Tutorial : https://goo.gl/9ubbG2

    OpenShift Tutorial for Beginners : https://goo.gl/s58BQH

    Spring Framework with Maven : https://goo.gl/MaEluO

    Sql Tutorial for Beginners : https://goo.gl/x3PrTg

    String Handling in Java : https://goo.gl/zUdPwa

    Array in Java : https://goo.gl/uXTaUy

    Java Servlet : https://goo.gl/R5nHp8

    Exception Handling in Java : https://goo.gl/N4NbAW

Java: Giao diện so với Lớp trừu tượng

  • Tác giả: helpex.vn
  • Đánh giá: 5 ⭐ ( 6551 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Lời nói đầu Một lớp được đặt tên là một lớp cụ thể khi nó có tên và thực thi mọi phương thức còn lại được khai báo dọc theo phân cấp lớp. Cùng với hệ thống phân cấp, các siêu kiểu của nó trở…

Giải thuật Nhánh Cận – ví dụ chi tiết và Code có giao diện Java

  • Tác giả: daotaobanhang.edu.vn
  • Đánh giá: 5 ⭐ ( 2232 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Học java cơ bản qua từng ví dụ cụ thể

  • Tác giả: shareprogramming.net
  • Đánh giá: 4 ⭐ ( 1075 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong loạt bài Học java cơ bản qua từng ví dụ cụ thể này mình sẽ cố gắng giải thích đơn giản và tạo ra nhiều ví dụ để cho các bạn dễ học

Thiết kế giao diện trong Java với NetBeans

  • Tác giả: mekoong.vn
  • Đánh giá: 5 ⭐ ( 1796 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Thiết kế giao diện trong Java với NetBeans Chào bạn, trong bài viết này mình sẽ giới thiệu cho bạn cách để thiết kế giao diện trong Java với Netbeans sử dụng Java Swing. Thiết kế giao diện trong

Java: Interface (Giao diện)

  • Tác giả: v1study.com
  • Đánh giá: 5 ⭐ ( 7233 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Java không hỗ trợ đa thừa kế. Tuy nhiên, có một số trường hợp khi nó trở thành bắt buộc đối với một đối tượng để thừa kế các thuộc tính từ nhiều lớp để trá

Giao diện Java

  • Tác giả: codefly.vn
  • Đánh giá: 3 ⭐ ( 1512 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  game cũ mà hay pc - Trang cung cấp những thông tin tổng hợp của nhiều quốc gia

By ads_php