Python과 Java의 클래스 생성자(constructor)에는 몇 가지 중요한 차이점이 있다.
Python : 클래스 생성자의 이름은 항상 __init__
이다. 클래스 내에 __init__
메서드를 정의하여 초기화 로직을 구현한다.
Java : 클래스 생성자의 이름은 클래스 이름과 동일하다. Java에서는 생성자를 클래스 이름과 동일한 이름으로 정의한다.
Python : 하위 클래스 생성자에서 부모 클래스의 생성자를 직접 호출할 필요가 없다. Python은 자동으로 부모 클래스의 생성자를 호출한다.
Java : 하위 클래스 생성자에서 명시적으로 super()를 사용하여 부모 클래스의 생성자를 호출해야 한다.
class Animal:
def __init__(self):
print('Animal 생성자')
def move(self):
print('움직이는 생물')
class Dog(Animal):
def __init__(self):
print('댕댕이 생성자')
def my(self):
print('난 댕댕이')
dog1 = Dog()
class Animal {
Animal() {
System.out.println("Animal 생성자");
}
void move() {
System.out.println("움직이는 생물");
}
}
class Dog extends Animal {
Dog() {
System.out.println("댕댕이 생성자");
}
void my() {
System.out.println("난 댕댕이");
}
}
public class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
}
}