새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속함 상속의 문법class B extends A{}상위
고객의 속성 : 고객 아이디, 고객 이름, 고객 등급, 보너스 포인트, 보너스 포인트 적립비율일반 고객의 경우 물품 구매시 1%의 보너스 포인트 적립Customer 클래스에 추가해서 구현하는 것은 좋지 않음VIPCustomer 클래스를 따로 구현이미 Customer에
하위 클래스를 생성하면 상위 클래스가 먼저 생성 됨 new VIPCustomer()를 호출하면 Customer()가 먼저 호출 됨클래스가 상속 받은 경우 하위 클래스의 생성자에서는 반드시 상위 클래스의 생성자를 호출 함Customer.javaVIPCustomer.jav
오버라이딩(overriding) : 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 VIPCustomer 클래스의 calcPrice()는 할인율이 적용되지 않음재정의 하
메서드(함수)의 이름은 주소값을 나타냄메서드는 명령어의 set 이고 프로그램이 로드되면 메서드 영역(코드 영역)에 명령어 set이 위치해당 메서드가 호출 되면 명령어 set 이 있는 주소를 찾아 명령어가 실행됨이때 메서드에서 사용하는 변수들은 스택 메모리에 위치 하게됨
하나의 코드가 여러 자료형으로 구현되어 실행되는 것같은 코드에서 여러 다른 실행 결과가 나옴정보은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나임다형성을 잘 활용하면 유연하고 확장성있고, 유지보수가 편리한 프로그램을 만들수 있음다른 동물을 추가하는 경우
일반적인(general) 개념과 구체적인(specific) 개념과의 관계상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee )하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...)상속은 클래스간의 결
업캐스팅된 클래스를 다시 원래의 타입으로 형 변환하위 클래스로의 형 변환은 명시적으로 해야 함원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞으면 true 아니면 false를 반환 함AnimalTest.java
구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstract method)를 포함한 클래스메서드 선언(declaration) : 반환타입, 메서드 이름, 매개변수로 구성메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구
추상 메서드나 구현 된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드final로 선언하여 하위 클래스에서 재정의 할 수 없게 함프레임워크에서 많이 사용되는 설계 패턴추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의 하고 하
모든 메서드가 추상 메서드로 선언됨 public abstract모든 변수는 상수로 선언됨 public static final자바 8 부터 디폴트 메서드(default method)와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있음Calc.
클래스나 프로그램이 제공하는 기능을 명시적으로 선언일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세(specification)클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음어떤 객체가 하나의 인터페이
하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있음 ( 다형성)여러가지 예DB에 회원 정보를 넣는 dao(data access object)를 여러 DB 제품이 지원될 수 있게 구현함환경
모든 변수는 상수로 변환 됨 public static final 모든 선언된 메서드는 추상 메서드 public abstract구현을 가지는 메서드, 인터페이스를 구현하는 클래스들에서 공통으로 사용할 수 있는 기본 메서드 default 키워드 사용구현 하는 클래스에서 재
자바의 인터페이스는 구현 코드가 없으므로 하나의 클래스가 여러 인터페이스는 구현 할 수 있음 디폴트 메서드가 중복 되는 경우는 구현 하는 클래스에서 재정의 하여야 함여러 인터페이스를 구현한 클래스는 인터페이스 타입으로 형 변환 되는 경우 해당 인터페이스에 선언된 메서드
Player가 있고 Player는 GameLevel 속성을 가집니다. 각 GameLevel 단계 마다 run(), jump(), turn() 세 가지 기능이 업그레이드 됩니다. 초보자 레벨 : 천천히 달립니다. run() 만 가능중급자 레벨 : 빠르게 달리고, 점프할
Good School 학교가 있습니다. 이 학교에는 5명의 학생들이 수업을 듣습니다. 과목은 국어와 수학이 있고, 각 학생은 두 과목을 모두 수강합니다. 전공은 컴퓨터공학과 국어국문학 두 가지가 있습니다. 컴퓨터공학과 학생은 수학이 필수과목이고, 국어국문학과 학생은 국