[Java] 상속과 생성자
·
TIL/Java
아래 코드처럼 자기 자신을 인스턴스화 시키는 것도 가능하다. 그 이유는 어떠한 생성자도 생성하지 않아 Java는 자동으로 매개변수가 없는 기본 생성자를 만들어주기 때문에 가능하다. 만약, 생성자를 하나라도 생성하게 된다면 Java는 명시적으로 기본 생성자를 생성해 주지 않는다. public class ConstructorDemo { public static void main(String[] args) { ConstructorDemo c = new ConstructorDemo(); } } 아래 코드를 실행을 하면 에러가 발생한다. 그 이유는 ConstructorDemo 클래스는 인자가 없는 생성자를 가지고 있지 않고 인자가 있는 생성자를 가지고 있기 때문이다. main 메소드에서 인자가 없는 생성자를 호출..
[Java] 상속(Inheritance)
·
TIL/Java
상속(Inheritance) 상속이란 물려준다는 의미이다. 어떤 객체가 있을 때 그 객체의 필드(변수)와 메소드를 다른 객체가 물려받을 수 있는 기능을 상속이라고 한다. 이때 기존의 객체는 기능을 물려준다는 의미에서 부모 객체가 되고, 새로운 객체는 기존의 객체의 기능을 물려받는다는 의미에서 자식 객체가 된다. 부모 클래스를 상위 클래스, 자식 클래스를 하위 클래스라고도 표현한다. 객체에 메소드를 추가하는 것이 어려운 경우는 다양하지만 공부했을 때 들었던 경우 두 가지만 아래와 같이 정리하였다. 객체를 자신이 만들지 않은 경우에는 소스를 변경할 수 없다. 변경할 수 있다고 해도 원 소스를 업데이트 하면 자신이 만든 메소드는 사라진다. 이러한 문제가 일어나지 않게 하기 위해서는 지속적으로 코드를 관리해야 ..