2013-09-25 3 views
-1

Java에서이 방법으로 코딩 할 수 있습니까? ClassA라는 원본 Java 파일 이름이 있지만 너무 많이 사용하고 싶지 않습니다. 당신은 ClassB가가를 ClassA 기능을 갖고 싶어 그래서 난 ClassA.java 다른 클래스 파일의 클래스에 메서드 추가

ClassA.java

public class ClassA implements XYZ{ 

     public ClassA() { 

      Abc(); 
     } 
    } 

ClassB.java

public class ClassB { 

     public ClassB Abc{ 
     } 

    } 
+2

귀하의 질문에 조금의 의미가 있습니다. 명확히하십시오. ClassA를 확장하여 그 메소드를 직접 사용하려는 이유는 무엇입니까? 그 중 하나를 사용하거나 구성을 사용하여 기능을 사용하십시오. –

+0

'public class ClassB extends ClassA' ... ...? – MadProgrammer

+0

전체 그림은 이와 유사합니다. ClassA.java는 ClassB.java에서만 메소드를 호출합니다. – newbieprogrammer

답변

1

에 당신이 방법에 액세스 할를 ClassA 변수에 선언 할 수있는 또 다른 일을 당신을 얻을 것이다이

public class ClassB extends ClassA{ 
super.Abc(); //calls parent class method 
} 
0

를 호출 할 입력 새로운 방법의 또 다른 ClassB.java를 만들 상속 또는 합성을 통해 ClassB를 향상시켜야합니다. 예를 들면 :

상속 :

public class ClassB extends ClassA { 
    // now can use or override ClassA methods. 
} 

구성 :

public class ClassB { 
    private ClassA classA = new ClassA(); 

    // now we can use classA instance throughout this class 
} 

는 일반적으로 내가 상속을 통해 구성을 선호하려고합니다. 컴포지션의 예는 클래스에 Scanner 또는 ArrayList 객체를 제공하고 클래스의 메서드에서 Scanner 또는 ArrayList를 사용하는 것입니다. 보시다시피, 아주 특이한 상황을 제외하고이 두 엔티티 중 어느 하나를 확장하도록 시도하는 것은 의미가 없습니다.

기타 질문은 여전히 ​​명확하지 않으며 문제가 여전히 남아 있고 도움이 필요한 경우 달성하려는 목표에 대한 구체적인 예를 제시하는 것이 좋습니다. 코드가 완전히 불분명하지만

0

, 나는 당신이 당신의 점

0
public class ClassB extends ClassA 

를 원하는 느낌 이 같은 ClassB가에서 속성 :

public ClassA() { 
    ClassB classB = new ClassB(); 
    classB.Abc(); 
} 

또는

public ClassA() { 
    new ClassB().Abc(); 
} 
관련 문제