반응형
반응형
인터페이스 (Interface) 추상 메소드와 상수로만 구성된 특수 형태의 클래스 상수란 값을 한번 설정하면 다시 바꿀 수 없는 변수 인터페이스 선언시 class가 아닌 interface로 정의 클래스의 상속은 extends를 쓰지만 인터페이스의 상속은 implements를 사용 다중 상속이 가능, 일반 클래스의 단일 상속의 단점을 보완 모듈들을 연결하는 기능 예) 인터페이스를 이용해 추상 메소드를 재정의하고 Hello 문구 출력하기 package Interface; // 인터페이스 public interface MyInterface { String msg = "Hello"; // 상수 void print(); // 추상 메소드 } // 추상 메소드 정의 및 메인 클래스 public class MyMai..
추상 클래스 클래스 선언시 abstract class로 정의 추상 메소드를 하나 이상 포함 추상 메소드는 선언만하고 구현하지 않은 메소드로 정의 추상 메소드를 포함하는 상위 클래스는 객체 생성 불가 하위 클래스에서 상속 받은 모든 추상 메소드를 구현하면 객체 생성 가능 추상 메소드를 모두 구현하지 않을 경우, 하위 클래스도 모두 추상 클래스 하위 클래스에 기본 틀을 제공 사용 예시 추상 클래스의 추상 메소드를 상속 받은 하위 클래스에서 구현하여 메소드 사용 package Abstract; // 부모 추상 클래스 public abstract class AbstractParent{ String msg; public abstract void print(); } // 자식 클래스, 추상 메소드 구현 public..
업캐스팅(Up-Casting) 클래스들간의 다양성을 구성하는데 사용 상속 받은 객체의 타입을 변경하기 위해 사용 데이터 타입은 상위 클래스이나 하위 클래스의 재정의 된 메서드 실행 데이터 타입이 상위 클래스이므로 상위 클래스에 정의된 변수만 사용 가능 업캐스팅 정의는 상위클래스 객체이름 = new 하위클래스(); 업캐스팅 된 객체는 다운캐스팅 가능 상속 관계의 클래스에서만 업/다운 캐스팅 가능 업캐스팅 예시 상위 클래스로 선언하였지만 객체 생성은 하위 클래스 상위 클래스이지만 실행되는 메소드는 하위 클래스의 메소드 package Casting; // 상위 클래스 (= 부모 클래스) public class UpCastingParent { protected int x, y; public UpCastingPa..
super 키워드 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는 데 사용하는 참조 변수 반대 개념으로는 this 키워드 존재, this는 인스턴스 변수가 지역 변수의 이름과 같을 경우 사용 예시) super 키워드를 사용하여 부모 클래스의 print 메소드 호출 Child 클래스의 super.print(); package ParentsClass; // 부모 클래스 public class Parent { protected String pMsg = "Hello"; @Override public void print() { System.out.println("Parent : " + pMsg); } } // 자식 클래스 public class Child extends Parent{ publi..
Overriding 부모 클래스의 상속 받은 메소드를 재정의 하는 것 @Override 오버라이딩을 할 때 프로그래머의 실수를 방지 하기 위해 사용 부모 클래스의 메소드와 이름이 다르면 에러 출력 오버라이딩을 할 메소드 위에 어노테이션 오버라이드를 정의 @Override 예시 부모 클래스의 print 메소드를 자식 클래스에서 오버라이딩 오버라이딩하는 메소드 위에 @Override 정의 public class Parent { protected String pMsg; public void print() { System.out.println("Parent : " + pMsg); } } public class Child extends Parent { protected String cMsg; @Override p..
클래스 변수 Static 키워드를 사용 클래스 내의 모든 객체들의 값을 공유 this 키워드 사용 불가 인스턴스 변수 클래스에 선언된 객체 변수, 멤버 변수 혹은 속성이라고도 함 객체들간의 값을 공유하지 않고 각각의 독립적인 이름 공간을 가짐 인스턴스 변수의 지역 변수를 지칭 할 경우 this 키워드를 사용하여 데이터 저장 지역 변수 함수 내에서 선언된 변수 함수 내에서만 값이 유효 전역 변수 함수 밖에서 선언된 변수 코드 전체에서 값이 유효 클래스 변수와 인스턴스 변수의 더 자세한 설명은 아래의 포스팅에서 확인 가능합니다. https://luvris2.tistory.com/228?category=1067469 메모리의 정적/동적할당, 정적 변수(=클래스 변수)와 인스턴스 변수 정적 할당 메모리를 sta..