범주형의 중요성을 체득하다
1699 단어 찾다
public class Dog implements AnimalDog{
@Override
public AnimalDog getAnimal() {
return null;
}
}
public interface AnimalDog{
public AnimalDog getAnimal();
}
public class Cat implements AnimalCat {
@Override
public AnimalCat getAnimal() {
return null;
}
}
public interface AnimalCat{
public AnimalCat getAnimal();
}
두 종류가 같은 방법이 있으면 우리는 인터페이스를 하나 더 써야 한다고 생각할 것이다. 그러면 우리는 하나를 더 만들 것이다. 그 문제가 생기면 우리는 Object 유형으로 돌아갈 수밖에 없다. 왜냐하면 어떤 유형인지 모르기 때문이다.
public interface Animal{
public Object getAnimal();
}
인터페이스가 다 이 인터페이스를 이어받아요.
public interface AnimalCat extends Animal{
public AnimalCat getAnimal();
}
public interface AnimalDog extends Animal{
public AnimalDog getAnimal();
}
좋은 것 같지만, 많은 번거로움을 발견하지 못했는지, 범형은 이 문제를 해결할 수 있다. 코드의 재사용은 사실 이런 인터페이스를 정의하기만 하면 된다.
public interface Animal{
public T getAnimal();
}
그리고 이렇게 사용해요.
public class Dog implements Animal{
@Override
public Dog getAnimal() {
return null;
}
}
public class Cat implements Animal {
@Override
public Cat getAnimal() {
return null;
}
}
public interface Animal{
public T getAnimal();
}
얼마나 간단한 코드인지, 이것이 바로 일반적인 매력이다.나중에 좋은 것이 있으면 모두 공유하고 범형은 많이 사용해야 수확을 얻을 수 있으며 이해가 깊고 틀도 이것을 빼놓을 수 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Rails에서 검색 기능을 직접 구현하는 방법이번에는 gm를 사용하지 않고 간단한 검색 기능을 만드는 방법을 적겠습니다. mysql 5.7.22 docker에서 mysql 양식에 검색 키워드(문자열) 입력 창의 검색 키워드(문자열)를 매개 변수로 컨트롤러 → ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.