인터페이스를 사용해야하는 이유는 무엇입니까?추상 클래스와 인터페이스를 언제 사용합니까?
하나의 인터페이스를 구현할 때 해당 인터페이스의 메소드 정의를 작성해야합니다. 그래서 인터페이스를 구현해야합니까? 클래스에 직접 메소드를 작성할 수 있습니다.
감사합니다 :) 당신이 classes.If 정의의 N 번호로 하나의 방법을 사용했다
인터페이스를 사용해야하는 이유는 무엇입니까?추상 클래스와 인터페이스를 언제 사용합니까?
하나의 인터페이스를 구현할 때 해당 인터페이스의 메소드 정의를 작성해야합니다. 그래서 인터페이스를 구현해야합니까? 클래스에 직접 메소드를 작성할 수 있습니다.
감사합니다 :) 당신이 classes.If 정의의 N 번호로 하나의 방법을 사용했다
은 각 클래스의 사용 인터페이스는 다릅니다.
한 가지 방법은 50 개의 클래스와 비슷하며 다른 50 개의 클래스는 서로 다른 동작을한다는 것은 추상 클래스를 사용한다는 것을 의미합니다. 메소드를 정의합니다.
처음 50 개 클래스에 사용하고 나머지 50 개 클래스는 서로 다른 동작을하므로 클래스 비헤이비어에 따라 기존 메서드를 재정의하십시오. 두 클래스는 다음 추상 사용에 대한
예
Interface Graphics
{
void size();
void draw();
}
Class Rectangle implements Graphics
{
void size()
{
x=10;
y=10;
}
void draw()
{
.....
}
}
class Triangle implements Graphics
{
void size()
{
x=10;
y=10;
}
void draw()
{
.....
}
}
때문에 크기는 모두 동일
abstract class Graphics
{
void size()
{
x=10;
y=10;
}
abstract void draw();
}
그리고 모든 클래스는 크기가 유사하다 만 draw()
를 정의하는이 클래스를 확장하는 경우 몇 가지 클래스가 필요한 경우 다른 위치는 크기를 무시합니다.
이 같이 더 많은 면접 질문 - 오래 arround에 존재하고 의견을 갖거나 이런 저런 생각을 백업하는 많은 사람들과 그 논의 중 하나입니다 무엇을 사용하는 경우에 대한
Decission. 거의 항상 작동하는 기본 규칙이 있다고 생각합니다. "A is B"라는 문장을 만들 수 있다면 추상화와 상속을 사용하십시오. "A는 할 수있다"라는 문장을 만들거나 클래스가 무엇인지에 대한 추상화, 즉 클래스가 수행 할 수있는 인터페이스를 만들 수있는 경우 인터페이스를 사용하십시오.
예를 들어, 삼각형이 다각형이라고 말할 수는 있지만 삼각형이 다각형이 될 수 있다고는 말할 수 없습니다.
어쨌든 이처럼 어림짐작은 다음과 같습니다. 상식을 사용하십시오. 위의 규칙이 당신에게 반대라고 말하는 경우에도 인터페이스가 단지 더 잘 맞을 때가 있습니다 (물론 결과를 고려한 후).
예제가 유용 할 수 있습니다. 아래 시나리오를 참조하십시오. A가 B를 확장하고 새로운 클래스 C를 만들 때
는1.class A extends B{
..
..
..
}
, 당신은 (당신이 B와 그 안에 새로운 방법을 추가하는 경우 A는 B 그래서 go for Interface.
2.class A implements B {
..
..
}
와 함께 C를 확장 할 수 없습니다 B)는 100 개의 클래스로 구현되므로 모든 클래스에서 새 메서드를 구현하기가 어렵습니다. 따라서 은 추상 클래스으로 이동하고 골격 구현과 함께 새 메서드를 추가합니다.
더 도움이 필요하면 Joshua Bloch의 Effective Java을 읽으십시오.
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html 및 http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html –
더 명확한 질문. "어디서"란 뜻이야?추상적 클래스를 사용하는시기와 인터페이스를 사용하는시기를 의미합니까? – Garbage
가능한 복제본 [실용적인 예제에서 사용 추상 클래스와 인터페이스를 이해할 수 있습니까?] (http://stackoverflow.com/questions/627199/can-you-help-me-understand-in-a-practical -example-the-usage-abstract-classes-vs) –