Java 204

62. 다형성 (Polymorphism) – 부모 타입으로 자식 객체 참조하기

이번 글에서는 부모 타입으로 자식 객체를 참조하는 방식과그럴 때 호출되는 오버라이딩 메서드의 동작 방식을 실습합니다.이것이 바로 객체지향 프로그래밍의 핵심 중 하나인 다형성(Polymorphism) 입니다.📦 부모 클래스 코드 (Parent.java)package ch07.sec07.exam02;public class Parent { public void method1() { System.out.println("Parent-method1()"); } public void method2() { System.out.println("Parent-method2()"); }}📦 자식 클래스 코드 (Child.java)package ch07.sec07.exam02;public class Child exten..

Java/자바 정리 2025.05.07

61. 자동 타입 변환 (Promotion) - 상속 관계에서의 업캐스팅

이번 글에서는 클래스 간 상속 관계를 기반으로 한 자동 타입 변환,즉 업캐스팅(Promotion) 을 학습합니다.자식 클래스 객체를 부모 클래스 타입으로 자동 변환할 수 있으며,이 구조는 다형성(Polymorphism)의 핵심 기반이 됩니다. 📌 실행 코드 (PromotionExample.java)class A {}class B extends A {}class C extends A {}class D extends B {}class E extends C {}public class PromotionExample { public static void main(String[] args) { B b = new B(); C c = new C(); D d = new D(); E e = new E(); A ..

Java/자바 정리 2025.05.07

60. protected 접근 제한자 - 상속과 패키지에 따른 접근 제어

이번 글에서는 접근 제한자 중 하나인 protected의 접근 범위를 학습합니다.protected는 같은 패키지에서는 자유롭게 접근할 수 있고,다른 패키지에서는 자식 클래스에서만 접근 가능한 제한을 갖습니다.📦 부모 클래스 코드 (A.java)package ch07.sec06.package1;public class A { protected String field; protected A() { } protected void method() { }}📌 같은 패키지의 클래스 (B.java)package ch07.sec06.package1;public class B { public void method() { A a = new A(); // (O) 생성자 접근 가능 a.field = "value"..

Java/자바 정리 2025.05.07

59. final 메서드 – 오버라이딩을 금지하기

이번 글에서는 자바에서 오버라이딩을 금지하는 방법인 final 메서드를 학습합니다.부모 클래스에서 중요한 기능이 변경되면 안 되는 경우,final을 선언함으로써 자식 클래스가 해당 메서드를 재정의하지 못하게 막을 수 있습니다.📦 부모 클래스 코드 (Car.java)package ch07.sec05.exam02;public class Car { public int speed; public void speedUp() { speed += 1; } public final void stop() { System.out.println("차를 멈춤"); speed = 0; }}📦 자식 클래스 코드 (SportsCar.java)package ch07.sec05.exam02;public class SportsCa..

Java/자바 정리 2025.05.07

[ 간단 정리 57+ ] 자바, 오버라이딩과 오버로딩의 차이점

✅ 오버라이딩 vs 오버로딩 차이 정리표구분오버라이딩 (Overriding)오버로딩 (Overloading)의미상속받은 메서드를 재정의같은 이름의 메서드를 여러 형태로 정의적용 대상상속된 메서드같은 클래스 내매개변수동일해야 함매개변수 수나 타입이 달라야 함반환타입동일하거나 자식 타입상관 없음접근 제한자부모보다 좁아지면 안 됨상관 없음대표 키워드@Override없음 (자동 판별)사용 목적부모 클래스의 기능을 자식이 바꿔 쓰기 위해같은 기능을 다양한 형태로 쓰기 위해📌 오버라이딩 예제 (상속에서 재정의)class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); }}class Dog extends Animal { @Ove..

Java/자바 정리 2025.05.07

58. super 키워드로 부모 메서드 호출하기 (오버라이딩 활용)

이번 글에서는 자식 클래스에서 오버라이딩한 메서드 내부에서super 키워드를 사용해 부모 클래스의 메서드를 호출하는 방법을 학습합니다.이 기법은 조건에 따라 부모 메서드를 그대로 유지하거나,자식 메서드의 동작을 선택적으로 확장/대체할 때 유용합니다.📦 부모 클래스 코드 (Airplane.java)package ch07.sec04.exam02;public class Airplane { public void land() { System.out.println("착륙합니다."); } public void fly() { System.out.println("일반 비행합니다."); } public void takeOff() { System.out.println("이륙합니다."); }}📦 자식 클래스 코드 (..

Java/자바 정리 2025.05.02

57. 메서드 오버라이딩(Method Overriding)

이번 글에서는 자식 클래스에서 부모 클래스의 메서드를 재정의(overriding) 하여동일한 이름의 메서드를 다른 방식으로 실행하는 구조를 학습합니다.오버라이딩은 객체의 다형성을 지원하는 핵심 개념입니다.📦 부모 클래스 코드 (Calculator.java)package ch07.sec04.exam01;public class Calculator { public double areaCircle(double r) { System.out.println("Calculator 객체의 areaCircle() 실행"); return 3.14159 * r * r; }}📦 자식 클래스 코드 (Computer.java)package ch07.sec04.exam01;public class Computer extends..

Java/자바 정리 2025.05.02

56. super(...)를 통한 부모 생성자 호출

이번 글에서는 상속받은 자식 클래스의 생성자에서부모 클래스의 생성자를 호출하는 방법을 학습합니다.자바에서는 부모 클래스에 매개변수가 있는 생성자가 있을 경우자식 클래스에서 반드시 super(...)로 명시적으로 호출해야 합니다.📦 부모 클래스 코드 (Phone.java)package ch07.sec03.exam01;public class Phone { public String model, color; public Phone(String model, String color) { this.model = model; this.color = color; System.out.println("Phone() 생성자 실행"); }}📦 자식 클래스 코드 (SmartPhone.java)package ch07.se..

Java/자바 정리 2025.05.02

55. 클래스 상속(Inheritance) - 부모 기능을 자식 클래스에서 확장

이번 글에서는 자바의 클래스 상속(Inheritance) 개념을 학습합니다.상속을 통해 부모 클래스의 필드와 메서드를 자식 클래스에서 재사용하고,필요한 기능은 추가 또는 수정(오버라이딩) 할 수 있습니다.📦 부모 클래스 코드 (Phone.java)package ch07.sec02;public class Phone { public String model, color; public void bell() { System.out.println("벨이 울립니다."); } public void sendVoice(String message) { System.out.println("자신 : " + message); } public void receiveVoice(String message) { System.ou..

Java/자바 정리 2025.05.02

54. Getter/Setter를 이용한 캡슐화 (Encapsulation)

이번 글에서는 private 필드를 외부에서 직접 접근하지 않고,getter와 setter 메서드를 이용해안전하게 값을 읽고 변경하는 방법을 학습합니다.이 방식은 캡슐화(Encapsulation) 라고 하며, 객체 지향 프로그래밍의 핵심 원칙 중 하나입니다.📦 클래스 코드 (Car.java)package ch06.sec14;public class Car { private int speed; private boolean stop; public int getSpeed() { return speed; } public void setSpeed(int speed) { if (speed 📌 실행 코드 (CarExample.java)package ch06.sec14;public class CarExample ..

Java/자바 정리 2025.04.29
반응형