2011-12-23 2 views
0

class Aclass B으로 확장되고, AB보다 많은 속성을 가질 수 있습니다.Java는 부모 유형보다 LESS 속성이있는 유형을 만드는 기능을 지원합니까?

class Aclass B? 그런 다음 class A의 속성 집합은 class B 일 수 있습니다.

나는 이것이 어떤 경우에 유용 할 것이라고 생각합니다.

+5

어쨌든 질문은 무엇입니까? –

+1

상속은 일반화 vs 전문화의 두 가지 방식으로 작동합니다. 비슷한 많은 기존 객체가 결합되어 하위 클래스의 작업을 수행하는 수퍼 클래스를 형성하면 일반화라고 알려져있는 반면 기존 수퍼 클래스에서 수퍼 클래스의 특정 작업을 수행하기 위해 새로운 하위 클래스가 만들어지면 전문화. 일반화 즉 A는 클래스 B에서 추출됩니다. 이것은 추상 클래스 또는 인터페이스 – Anand

+1

의 도움으로 얻을 수 있습니다. 의미하는 바를 나타내는 실제적인 내용을 게시하고 "클래스 A"를 추출합니까? 'class B'에서? ** "추출 된"**의 의미는 무엇입니까? 자바 같은 용어에 대해 들어 본 적이 없어. – Lion

답변

1

설명의 가능한 해석은 polymorphism (코드 참조)의 개념입니다. 그러나 의 측면에서보다 작은 기능을 가진 클래스를 파생 시키면 Java의 언어 기능이 아닙니다.

public class A { 
    public int x = 5; 
} 

public class B extends A { 
    public int y = 10; 
} 

... 

B b = new B(); // Behaves like a B object should 
System.out.println(b.y); // works 
A a = (A)b; // Cast it to a parent class 
System.out.println(a.y); // fails 
+0

+1 질문에 대답합니다. 흥미로운 점은 Eiffel과 같은 몇몇 언어는 이런 종류의 구조를 허용한다는 것입니다.하지만 에펠은 다형성을 구현하는 방법에 대해 다른 생각을 가지고 있습니다. :) –

관련 문제