1. 인터페이스(Interface)란?💡 추상 메소드(public abstract)와 상수 필드(public static final)만 가질 수 있는 클래스의 변형체.implements라는 키워드를 사용하며 자식 클래스 입장에서 '상속 받았다'고 말하지 않고 '구현한다'라는 표현을 쓴다.매개체 역할인터페이스의 표현식interface TestInter { // 모든 필드는 public static final만 가능하다. public static final PI1 = 3.1415; // public : 어디서든 접근 가능하며 // static : 프로그램 전반에 걸쳐 시작부터 끝까지 사용 가능 // final : 값은 변하지 않는다. // public static final을 생략해도 자동으..
1. 추상 클래스(Abstract Class)란?💡 추상 메소드: 메소드의 기능이 없고 메소드의 헤더부만 존재하는 불완전한 메소드💡 추상 메소드를 0개 이상 포함하는 클래스로 스스로 자신의 생성자를 활용한 인스턴스 생성이 불가능.따라서 추상 클래스는 불완전한 클래스라고 볼 수 있다.상속을 활용해 하위 클래스 타입의 인스턴스를 이용해서 인스턴스를 생성해야 한다.추상 메소드를 하나라도 포함하면 불완전하다고 볼 수 있는 클래스이므로 반드시 추상 클래스가 되어야 한다.2. 추상 클래스를 사용하는 이유💡 스스로 인스터는 만들지 못하지만 다형성 적용을 위한 부모 타입 역할을 해낼 수 있다.추상 메소드를 포함한 추상 클래스는 추상 메소드를 통해 자식 클래스에 오버라이딩에 대한 강제성을 부여할 수 있다.(추상 클..
1. 다형성의 정의 및 사용 이유1-1. 다형성(Polymorphism)이란?→ 타입 은닉💡 하나의 인스턴스가 여러 가지 타입을 가질 수 있는 것을 의미한다.하나의 타입으로 여러 타입의 인스턴스를 처리할 수 있기도 하고, 하나의 메소드 호출로 객체별로 각기 다른 방법으로 동작하게 할 수도 있다.1-2. 다형성의 장점유지보수성과 생산성 증가(여러 타입의 객체를 하나의 타입으로 관리)상속관계에 있는 모든 객체는 동일한 메세지를 수신. 동잃한 메세지를 수신받아 처리하는 내용을 객체별로 다르게 할 수 있다확장성이 좋은 코드 작성결합도 낮춰서 유지보수성 증가1-3. 동적 바인딩💡 컴파일 당시에는 해당 타입의 메소드와 연결되어 있다가 런타임 시 실제 해당 인스턴스가 메소드(오버라이딩 한 메소드)로 바인딩이 바뀌..
1. 오버라이딩(Overriding)💡 부모클래스에서 상속받은 메소드를 자식 클래스가 재정의하여 사용하기 위한 기술1-1. 오버라이딩 성립 조건메소드명 동일메소드 리턴타입 동일매개변수의 타입, 개수, 순서가 동일부모 클래스의 private 메소드는 오버라이딩 불가능부모 클래스의 final 키워드가 사요된 메소드는 오버라이딩 불가능접근 제어자는 부모 메소드와 같거나 더 넓은 범위여야 함예외처리는 같은 예외이거나 더 구체적(하위)인 예외를 처리해야 함package com.ohgiraffers.section03.overriding;/* 설명. class가 final 키워드가 붙으면 부모 클래스가 될 수 없다. *///public final class SuperClass {public class SuperCl..
1. 상속의 키워드1-1. IS-A💡 "자식 클래스는 (하나의)부모 클래스이다." 라는 말을 만족(성립)하는 관계를 뜻한다.클래스 간 상속 관계를 파악하기 위한 키워드ex) Circle is a Shape 원은 하나의 모양이다.- Product is a Computer (X)- Computer is a Product (O) → 자식 : Computer / 부모 : Product 1-2. super와 super()💡 인스턴스 생성 시 부모 생성자를 호출하여 부모 클래스의 인스턴스도 함께 생성하게 된다.이 때 생성한 부모 인스턴스의 주소를 보관하는 레퍼런스 변수로 자식 클래스 내의 모든 생성자와 메소드 내에서 묵시적으로 사용할 수 있는 레퍼런스 변수이다.💡 super()는 부모 생성자를 호출..
1. 상속의 정의 및 사용 이유1-1. 상속(Inheritance)이란?💡 부모 클래스가 가지는 멤버(필드, 메소드)를 자식 클래스가 물려 받아 자신의 멤버인 것처럼 사용할 수 있도록 만든 기술.(단, 생성자는 물려 받지 않음)멤버 외에도 부모 클래스의 타입 또한 상속이 된다.(다형성의 토대)자바는 단일상속(자식 클래스는 하나의 부모 클래스만 가지는)만 지원.package com.ohgiraffers.section01.extend;public class Application { public static void main(String[] args) { /* 수업목표. 상속에 대해 이해할 수 있다. */ // 다형성을 적용하기 위한 문법적 토대가 상속이다! Car..
package com.ohgiraffers.section08.uses;import java.util.Scanner;public class Application { public static void main(String[] args) { Scanner sc = new Scanner(System.in); MemberService memberManager = new MemberService(); while(true) { System.out.println("======= 회원 관리 프로그램 ======="); System.out.println("1. 회원 등록"); System.out.println("2. 회원..
💡 레퍼런스 변수에 대한 배열로 동일한 타입의 여러 인스턴스들을 배열로 관리할 수 있다.package com.ohgiraffers.section08.object_array;public class Application { public static void main(String[] args) { Car car1 = new Car("페라리", 300); Car car2 = new Car("람보르기니", 510); Car car3 = new Car("롤스로이스", 250); Car car4 = new Car("부가티", 400); Car car5 = new Car("포터", 500); car1.driveMaxSpeed(); ..