JavaFX는 Java 기반으로 만들어진 GUI(Graphical User Interface) 응용 프로그램을 개발하기 위한 방법 중 하나입니다. 이를 통해 풍부한 그래픽 요소와 상호작용할 수 있는 사용자 인터페이스를 생성할 수 있습니다. 상속과 다형성은 JavaFX에서 많이 활용되는 중요한 개념 중 하나입니다. 이번 포스트에서는 JavaFX에서 상속과 다형성을 어떻게 활용할 수 있는지 알아보겠습니다.
상속(Inheritance)을 통한 JavaFX 클래스 확장
JavaFX에서는 클래스를 상속하여 새로운 클래스를 구현할 수 있습니다. 상속을 통해 기존 클래스의 속성과 동작을 상속받아 새로운 클래스를 확장할 수 있습니다. 이를 통해 코드의 재사용성과 유지보수성을 개선할 수 있습니다.
예를 들어, Button
클래스를 상속하여 새로운 CustomButton
클래스를 구현하고자 한다고 가정해봅시다. 이 경우, CustomButton
클래스에서는 Button
클래스가 가지는 기능을 그대로 사용할 수 있으면서 추가적인 기능을 구현할 수 있습니다. 예를 들어, CustomButton
클래스에서는 클릭 이벤트 발생 시 특정 동작을 수행하도록 구현할 수 있습니다.
public class CustomButton extends Button {
// CustomButton에 특정 기능들을 추가적으로 구현
// ...
}
상속을 통해 CustomButton
클래스는 Button
클래스의 모든 속성과 메소드를 상속받습니다. 즉, Button
클래스의 속성들을 직접 접근할 수 있으면서 필요에 따라 추가적인 기능을 구현할 수 있습니다.
다형성(Polymorphism)을 통한 JavaFX 요소 관리
JavaFX에서는 다형성을 이용하여 여러 요소들을 효율적으로 관리할 수 있습니다. 다형성은 같은 부모 클래스를 상속받은 여러 자식 클래스 객체들을 동일한 타입으로 다룰 수 있는 능력을 말합니다.
예를 들어, Node
클래스는 JavaFX의 모든 GUI 요소들의 조상 클래스입니다. Node
클래스를 상속받은 클래스들은 모두 Node
타입으로 다룰 수 있습니다. 이를 통해 여러 요소들을 동일한 컬렉션에 저장하고 관리할 수 있습니다.
ArrayList<Node> nodes = new ArrayList<>();
nodes.add(new Button());
nodes.add(new Label());
nodes.add(new TextField());
for (Node node : nodes) {
node.setStyle("-fx-background-color: yellow");
}
위의 예시에서 nodes
리스트에는 Button
, Label
, TextField
객체들이 모두 Node
타입으로 저장됩니다. 따라서 for-each
루프를 통해 모든 요소들에 대해 동일한 동작을 수행할 수 있습니다. 이는 코드의 재사용성과 유지보수성을 개선시키는데 도움을 줍니다.
참고 문서
- Oracle JavaFX Documentation
- Java Inheritance - Oracle Documentation
- Java Polymorphism - Oracle Documentation