-
왜 static 메서드는 오버라이딩 될 수 없을까?JAVA/궁금증 2024. 10. 2. 17:52
오버라이딩은 인스턴스 메서드에서 가능한데, static 메서드는 클래스에 속한 메서드니까.
1. 인스턴스 메서드
인스턴스 메서드는 객체가 생성되어야만 사용할 수 있으며, 객체에 속한 데이터(속성)를 다룬다. 인스턴 메서드는 객체마다 다른 데이터를 사용할 수 있게 해준다.
class MyClass { public void instanceMethod() { System.out.println("This is an instance method."); } } MyClass obj = new MyClass(); // 인스턴스 생성 obj.instanceMethod(); // 인스턴스 메서드 호출
2. 클래스에 속한 static 메서드
static 메서드는 클래스에 속해 있으며 객체를 생성하지 않아도 호출할 수 있다. 클래스 자체와 관련된 기능을 제공하며 인스턴스 변수를 사용하지 않는다.
class MyClass { public static void staticMethod() { System.out.println("This is a static method."); } } MyClass.staticMethod(); // 객체 생성 없이 클래스명으로 직접 호출
여기서 staticMethod는 클래스 자체에 속해 있기 때문에, 객체를 생성하지 않고도 MyClass.staticMethod()처럼 클래스명으로 바로 호출할 수 있다.
'JAVA > 궁금증' 카테고리의 다른 글
.dot 사용: 1. 객체의 멤버에 접근할 때 2. 클래스의 정적(static) 멤버에 접근할 때 (0) 2024.09.15 객체의 생성과 참조 (0) 2024.09.15 생성자 다시 기본 정리(do it! 자바) (0) 2024.09.15 인스턴스 객체화하는 이유 (0) 2024.09.01 생성자는 클래스 당 몇 개 만들 수 있을까? (0) 2024.08.25