쉬운 설명의 추상 클래스 및 인터페이스

이것은 아마도 가장 묻는 질문에는 모든 인터뷰에 관련된 소프트웨어 개발 또는 소프트웨어 품질의 우수성을 보증합니다. 본 내 경험에서는 종종 우리의 많은 혼란스러워 하거나 잊을 정의 및 사용의 추상 클래스와 인터페이스를 제공합니다. 그래서,나는 아무도 다시는 그것에 어떤 문제도 가지지 않도록 가장 쉽게 만들고 싶습니다.

추상 클래스 및 인터페이스가 있는 두 개의 매우 중요한 선회에서 객체 지향 프로그래밍 개념입니다.,

처음에는 추상 클래스와 사용법을 설명 할 것이고 나중에 인터페이스로 이동할 것입니다.

추상 클래스가 특별한 것을 볼 때에 너를 구별하려는 일반적인 클래스입니다. 그러나 그것은 단순화되지 않았거나 선언 된 경우에만 정의되지 않은 몇 가지 메소드를 가지고 있습니다. 이 경우 모든 메소드와 클래스 자체는”추상”키워드로 이름이 바뀝니다.

추상 클래스는 하나 또는 여러 개의 단순화되지 않은 메소드를 가질 수 있습니다.,

으로 추상 클래스에서는 적절하지 않다거나 없는 이상적인 정의된 방법에 비해 정기적으므로,추상 클래스의 인스턴스화할 수 없는 수단을 만들 수 없습니다 우리는 어떤 직접적인 물체의 추상 클래스입니다.

클래스를 상속/확장 이 추상 클래스를 구현해야/정의로 모든 추상적인 방법을 부모의 추상 클래스입니다.

어떤 클래스가 추상 메소드 중 하나를 정의하지 못하면 해당 클래스도 추상 클래스가됩니다.,

사용(가상의 경우 공부):

다가,1995 년에,당신이 설계 자동차 등이 있던 추가적인 기능이 그것이 날 수 있습니다. 당신은 자동차를 설계 등을 매우 잘하고,모든 방법들 표준과 효율적인,하지만 그 당시에,당신은 알고 있었다 매우 불가능을 구현하 carFlying()메소드가 있습니다. 그래서,당신은 그 carFlying()메소드 빈,구현되지 않거나(지금은 당신이 알고 있는 추상적인 방법뿐만 아니라 클래스!).,

오늘,나는 당신이 이미 설계 한 그 비행 자동차를 구현하고 기술은 더 이상 불가능하지 않습니다. 내가 만들 예정인 차는 당신의 차와 비슷한 모든 기능을 가지고 있으며,추가로 날 수 있습니다. 그래서,내가 할 수있는 일은 추상 클래스를 상속(“확장”-Java 용)할 수 있고 그 carFlying()추상 메소드를 정의/구현해야합니다. 여기 당신이 간다! 우리의 비행 차는 굴러 갈 준비가되어 있습니다.

때마다 그래서,우리는 몇 가지 일반적인 기능을 가지고 있거나 동작이 여러 개 있습니다,우리는 일반적인 추상 클래스와는 방법으로 구현했습니다., 그러나 그 개체할 수 있는 독특한 행동,이 경우에,우리는 선포하고 추상적인 방법과 구현하는 것 그 추상적인 방법에 따라 다르게 개체의 필요합니다.

추상 클래스의 예:

다시 한 번 예를 생각해 봅시다. 그러나 그들은 다른 테마 음악과 마무리 싸움 전략을 가지고 있습니다. 그래서 우리는 지불 방법을 모두 동일하게 유지하고 레슬러라는 클래스에서 구현하도록 할 수 있습니다., 할 수 있습을 선언 themeMusic()및 피니셔()방법으로 추상적이기 때문에 이러한 두 개의 구현할 수 있는 다르게 다른 목표를 위해서는 다른 클래스를 상속하는 우리의 레슬링 선수 추상 클래스입니다.

및 메인.java:

인터페이스:

경우에 당신은 그것을 통해서 제대로 이해 인터페이스는 것은 매우 쉽습니다.

인터페이스는 클래스가 아니며 단지 인터페이스입니다. 그것은 몇 가지 방법이 없이 몸 안에,다만 메소드 서명(그들은 기본적으로 추상적인 방법!,),일부 최종 및 정적 변수가있을 수 있습니다. 그리고 일반적인 클래스는”확장”이 아닌 인터페이스를”구현”합니다.

여러 인터페이스를 한 번에 구현(일반적으로 상속)할 수 있습니다.

인터페이스를 상속/구현하는 클래스는 인터페이스의 모든 추상 메소드를 정의해야합니다.

인터페이스 내부의 메소드는 기본적으로 public,void 및 abstract 입니다.

인터페이스는 Java 프로그래밍 언어에서 일종의 다중 상속입니다.

추상 클래스와 마찬가지로 인터페이스를 인스턴스화 할 수 없습니다., 왜냐하면 그것들은 불완전한 실체이기 때문에 실현되도록 허용되어서는 안됩니다. 그러나 때로는 인스턴스화와 같은 활동이 익명의 내부 클래스의 도움을 받아 적용 할 수 있습니다. 그것은 오늘 우리의 의제가 아닙니다.

인터페이스의 사용법:

인터페이스는 코딩 시간을 절약합니다. 전역 적으로 액세스 할 수있는 정적 및 최종 변수를 포함 할 수 있습니다. 그리고 인터페이스를 구현하는 사람에게 언제든지 추상적이고 쉽게 사용할 수있는 몇 가지 메소드.,

를 들어 인터페이스:

위의 예에서의 추상 클래스는 우리가 보는 하나의 방법이 모두 동일하다는 신체 내부의 추상 클래스와는 다른 방법은 추상적입니다. 그러나 인터페이스의 경우 모든 메소드는 이제 서명 일뿐입니다. 클래스 StoneCold 는 레슬러 인터페이스를 구현하고 필요에 따라 세 가지 추상 메소드를 모두 정의합니다.이번에는 다른 레슬러가 시간당 다른 금액을 얻습니다. 따라서 추상 메소드와 동일한 메소드를 넣고 객체의 필요에 따라 다른 곳에서 정의하는 것이 가장 편리합니다.,

public interface Wrestler {
public abstract void paymentForWork (int hours);
public abstract void themeMusic();
public abstract void finisher();
}

그리고 다음 클래스는 레슬러 인터페이스를 구현합니다.메인에 대해

.java:

에 대한 개체를 시작의 경우에는 추상 클래스 또는 인터페이스 유지할 수 있습니다 다음에,

A obj= new B();
//where A is an interface/abstract class. B is the concrete(implements/extends "A”)class which gives it’s memory to A’s obj to have access into B class and utilize its defined methods.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다