2016-09-12 6 views
0

java 메소드를 생성하는 데 도움이 필요합니다. 반환하지 않고 부모 클래스에 메소드를 작성해야하고 다른 기준을 가진 하위 클래스에서 동일한 메소드를 사용해야합니다. 나는 그것을 할 수있는 방법이 있음을 알고 있지만 나는 그것을 기억할 수 없다. 어떤 도움이 높게 평가 될 것이다. Java에서 사용하는 부모 메소드의 place holder

public abstract class Property // this is the class name, which is parent 

내가 어떻게 생각하고 어떻게가요

public abstract double calculateTax() 
{ 
    return ; 
} 

필자는 아이들에서이 같은 방법을 사용하지만 내가 CommercialProperty에 대한

calculateTaxes을 변경했습니다 기준 (어린이 1 인)

평방 피트가 1500보다 큰 경우 주 코드가 TX 인 경우 세금은 시장 가격 * .25입니다. 그렇지 않은 경우 세금은 시장 가치 * .20입니다. 그렇지 않으면 평방 피트가 적을 경우 floodzone 사실 세금입니다 추가로 10 % 인 경우 또는 1,500 세금과 동일 *이 ResidentialProperty

에 대한 0.10

calculateTaxes는 * 시장 가치 0.5입니다 시장 가치이다.

은 내가 데이터를 누락 알고 있지만 난 그냥에 대한 개념을 알고 싶어하는 방법

+2

[추상 방법] (http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html)을 만들려고하십니까? – 4castle

+0

추상 메서드에는 시체가 없습니다. – Li357

+0

@ 4castle 그게 뭔지 생각, 다시 내 질문을 편집 잘하면 그것은 더 의미가, 감사합니다 – jojo

답변

1

Open/Closed principle은 다음과 같이 간다 염두에 유지하면서, 추상적 인 클래스를 사용하는 방법에 대한 간단한 예 :

여기
abstract class A { 
    protected abstract String getFoo(); 
    public final bar() { 
    System.out.println("The foo: " + getFoo()); 
    } 
} 

class B extends A { 
    @Override 
    protected String getFoo() { return "whatever"; } 
} 

아이디어 :

  1. 당신은 를 사용 추상 확장 클래스 과 같은 메소드에 대해 "추가"동작을 나타내야 함을 나타내는 메소드 선언.
  2. 정확하게 말하면 : 추상화이 아니며에는 시체가 있습니다. 아무 진술도, 반환, 아무것도!
  3. 기본 클래스에 갖고 싶은 동작을 여전히 "고정"합니다. 바로 거기에 있습니다. 그리고 당신은 자식 클래스가 에서으로 변경되는 것을 방지합니다.

예를 들어, 추상 메소드는 String을 리턴합니다. 예제를 더 의미있게 만들기 위해서입니다. 물론 추상적 인 메서드는 원하는 모든 서명을 가질 수 있습니다. 그리고 기록을 위해 : 서브 클래스에서 메소드를 오버라이드 할 때 @Override 주석을 위치에 두는 것을 잊지 마십시오!

+0

추상 메서드 *에 시체가없는 *을 포함하는 것이 좋습니다. OP가 그 개념을 이해하지 못하는 것 같습니다. 어쨌든, 모든 주위 좋은 답변! – Li357

+0

제안을 주셔서 감사합니다. – GhostCat

관련 문제