오버로딩(Overloading) 같은 이름의 메서드를 여러 개 정의하되 매개변수의 개수나 타입을 다르게 함 오버라이딩(Overriding) 상속 관계에서 부모 클래스의 메서드의 내용을 자식 클래스에서 재정의 부모 메소드의 선언부(리턴 타입, 메서드명, 매개변수)가 동일해야함 접근 제한자를 더 강하게 변경하는 것은 불가능 ex) public -> private 불가! @override //생략가능 colorPrinter의 print()는 부모 print가 아닌 overriding으로 재정의된 실행문이 나옵니다.
상속이란? 부모 클래스의 필드와 메소드를 자식 클래스에서 물려 받아 사용하는 것 public class 자식 extends 부모{ } super() super()는 부모클래스의 생성자를 호출 자식 클래스의 생성자 가장 처음에 super()가 숨어있음 만약 매개변수가 있는 super(매개변수)를 만들면 매개변수가 없는 super()는 없어짐 --생성자에서 확인해야할 것 부모 클래스의 생성자와 자식 클래스의 super()의 매개변수를 맞춰줘야함. 즉, 부모클래스가 매개변수가 있는 생성자만 있을 경우, 자식 클래스에도 super(매개변수) 맞춰줘야함. 부모 필드와 함수 접근 super.필드명 super.함수() this() 자신의 생성자를 호출
인스턴스(Instance) 멤버 : 객제가 생성되어야만 사용 가능한 필드, 메소드 ex) Car myCar = new Car(); myCar.run(); 정적(Static) 멤버 : 객체 생성 없이 사용 가능한 필드, 메소드 static 멤버 접근 클래스명.필드 클래스명.함수() ex) Math.random() : Math 클래스의 static메소드인 random()을 호출 Static 멤버의 초기화 : static 변수는 생성자에서 초기화 하지 않고 static{}을 따로 만들어줌 Staticc 멤버의 특징 : 메모리에서 가장 먼저 읽어들이기 때문에 Static 메소드 안에 인스턴스 멤버는 읽어들이지 못함