java
인터페이스는 클래스를 구현하는 데 사용할 수 있는 청사진입니다. 인터페이스에는 구체적인 메서드(코드가 있는 메서드)가 포함되어 있지 않습니다. 인터페이스의 모든 메소드는 추상 메소드입니다.
인터페이스를 인스턴스화할 수 없습니다. 그러나 인터페이스를 구현하는 클래스는 인스턴스화할 수 있습니다. 인터페이스는 인스턴스 변수를 포함하지 않지만 공용 정적 최종 변수(즉, 상수 클래스 변수)를 포함할 수 있습니다.
선언에 abstract 키워드가 있는 클래스를 추상 클래스라고 합니다. 추상 클래스에는 최소한 하나의 추상 메서드가 있어야 합니다. 즉, 본문이 없는 메소드. 여러 가지 구체적인 방법을 가질 수 있습니다.
추상 클래스를 사용하면 구체적인 클래스에 대한 청사진을 만들 수 있습니다. 그러나 상속하는 클래스는 추상 메서드를 구현해야 합니다.
추상 클래스는 인스턴스화할 수 없습니다.
인터페이스를 사용하는 중요한 이유
추상 클래스를 사용하는 중요한 이유
추상 클래스를 사용하면 하위 클래스가 구현하거나 재정의할 수 있는 기능을 만들 수 있지만 인터페이스는 기능을 명시할 수만 있고 구현하지 못하도록 합니다. 클래스는 하나의 추상 클래스만 확장할 수 있지만 클래스는 여러 인터페이스를 구현할 수 있습니다.
매개변수 | 인터페이스 | 추상 클래스 |
---|---|---|
속도 | 느림 | 빠름 |
여러 상속 | 여러 인터페이스 구현 | 단 하나의 추상 클래스 |
구조 | 추상 메소드 | 추상적이고 구체적인 방법 |
사용 시기 | 향후 개선 | 독립을 피하기 위해 |
상속/구현 | 클래스는 여러 인터페이스를 구현할 수 있습니다. | 클래스는 하나의 추상 클래스만 상속할 수 있습니다. |
기본 구현 | 인터페이스에 새 항목을 추가하는 동안 모든 구현자를 찾고 새로 정의된 항목을 구현하는 것은 악몽입니다. | 추상 클래스의 경우 기본 구현을 활용할 수 있습니다. |
접근 수정자 | 인터페이스에 액세스 수정자가 없습니다. 인터페이스 내부에 정의된 모든 것은 public 수정자로 간주됩니다. | 추상 클래스는 액세스 수정자를 가질 수 있습니다. |
사용 시기 | 다양한 구현이 메서드 서명만 공유할 때 인터페이스를 사용하는 것이 좋습니다. 값 유형의 다형성 계층 | 동일한 종류의 다양한 구현이 공통 동작을 공유할 때 사용해야 합니다. |
데이터 필드 | 인터페이스는 데이터 필드를 포함할 수 없습니다. | 클래스는 데이터 필드를 가질 수 있습니다. |
다중 상속 기본값 | 클래스는 수많은 인터페이스를 구현할 수 있습니다. | 클래스는 하나의 추상 클래스만 상속합니다. |
구현 | 인터페이스는 추상적이어서 어떤 코드도 제공할 수 없습니다. | 추상 클래스는 재정의해야 하는 완전한 기본 코드를 제공할 수 있습니다. |
접근 수식어 사용 | 메소드, 속성 등에 대한 액세스 한정자를 사용할 수 없습니다. | 접근 수정자를 포함하는 추상 클래스를 사용할 수 있습니다. |
사용 | 인터페이스는 클래스의 주변 능력을 정의하는 데 도움이 됩니다. | 추상 클래스는 클래스의 ID를 정의합니다. |
정의된 필드 | 필드를 정의할 수 없습니다. | 추상 클래스를 사용하면 필드와 상수를 모두 정의할 수 있습니다. |
상속 | 인터페이스는 여러 인터페이스를 상속할 수 있지만 클래스는 상속할 수 없습니다. | 추상 클래스는 클래스와 여러 인터페이스를 상속할 수 있습니다. |
생성자 또는 소멸자 | 인터페이스는 생성자 또는 소멸자를 선언할 수 없습니다. | 추상 클래스는 생성자와 소멸자를 선언할 수 있습니다. |
확장 제한 | 인터페이스를 원하는 수만큼 확장할 수 있습니다. | 한 번에 하나의 클래스 또는 하나의 추상 클래스만 확장할 수 있습니다. |
추상 키워드 | 추상 인터페이스 키워드에서 메소드를 추상으로 선언하기 위한 선택 사항입니다. | 추상 클래스에서 추상 키워드는 메소드를 추상으로 선언하는 데 필수입니다. |
클래스 유형 | 인터페이스는 공개 추상 메소드만 가질 수 있습니다. | 추상 클래스에는 보호 및 공개 추상 메소드가 있습니다. |
다음은 Java에서 인터페이스 및 추상 클래스를 생성하는 샘플 코드입니다.
인터페이스 구문
interface name{ //methods }
자바 인터페이스 예:
interface Pet { public void test(); } class Dog implements Pet { public void test() { System.out.println("Interface Method Implemented"); } public static void main(String args[]) { Pet p = new Dog(); p.test(); } }
추상 클래스 구문
abstract class name{ // code }
추상 클래스의 예:
abstract class Shape { int b = 20; abstract public void calculateArea(); } public class Rectangle extends Shape { public static void main(String args[]) { Rectangle obj = new Rectangle(); obj.b = 200; obj.calculateArea(); } public void calculateArea() { System.out.println("Area is " + (b * b)); } }
java
C++이란 무엇입니까? C++는 범용 프로그래밍 언어에서 널리 사용됩니다. 언어를 사용하면 고급 및 저급 언어 기능을 캡슐화할 수 있습니다. 따라서 중급 언어로 간주됩니다. 또한 하드웨어 수준 코딩이 필요한 복잡한 시스템을 개발하는 데 사용되었습니다. 이 자습서에서는 다음을 배우게 됩니다. C++이란 무엇입니까? 파이썬이란 무엇입니까? 왜 파이썬인가? 왜 C++인가? C++의 기능 파이썬의 기능 C++ 응용 프로그램 파이썬 응용 프로그램 파이썬 대 C++ C++의 단점 파이썬의 단점 파이썬이란 무엇입니까?
부품을 설계할 때 비교 가능한 재료 간의 중요한 차이점을 이해하는 것이 중요합니다. 예를 들어, 실수로 열경화성 수지 대신 열가소성 수지를 사용하여 고온을 견딜 수 있는 제품을 만들면 재앙적인 결과를 초래할 수 있습니다. 열가소성과 열경화성 수지라는 용어는 플라스틱 부품 제조와 관련된 많은 대화에 등장하지만 서로 바꿔 사용할 수 없습니다. 이 문서에서는 열가소성 수지와 열경화성 수지의 주요 차이점과 각 재료의 주요 이점 및 최상의 응용 분야를 설명합니다. 열가소성:알아야 할 사항 기계적/화학적 특성 열가소성 플라스틱은 가열하면