Java46 추상 클래스 추상 클래스abstract class AbstractExample {...}추상적인 개념을 제공하는 클래스로서 실체인 인스턴스가 존재하지 않음상속을 목적으로 사용되며 부모 클래스 역할을 담당클래스 선언 시 abstract 키워드를 사용기존 클래스와 완전히 같지만 new 클래스명() 과 같이 직접 인스턴스를 생성하지 못하는 제약이 추가됨추상 클래스 생성 시 cannot be instantiated 컴파일 오류가 발생하므로 인스턴스를 생성할 문제를 근본적으로 방지메모리 구조는 기존 클래스와 동일추상 메서드public abstract void testMethod();추상적인 개념을 제공하는 메서드로서 실체가 존재하지 않고, 메서드 바디가 없음추상 메서드가 하나라도 있는 클래스는 추상 클래스로 선언해야 함그렇지.. 2025. 1. 2. 다형성과 메서드 오버라이딩 다형성과 메서드 오버라이딩public class Parent { public String value = "parent"; public void method() { System.out.println("Parent.method"); } }public class Child extends Parent { public String value = "child"; @Override public void method() { System.out.println("Child.method"); } }멤버 변수는 오버라이딩 되지 않으며 메서드만 오버라이딩중요한 것은 오버라이딩 된 메서드가 항상 우선권을 가짐상세 과정child는 Child 타입이므로 value.. 2024. 12. 31. instanceof instanceof다형성에서는 참조형 변수는 이름 그대로 다양한 자식을 대상으로 참조 가능하기에 어떤 인스턴스를 참조하는 지 확인이 필요한 경우 존재인스턴스의 타입을 확인하는 키워드"객체 instanceof 클래스" 형식으로 사용사용 예시new Parent() instanceof ParentParent p = new Parent() //같은 타입 truenew Child() instanceof ParentParent p = new Child() //부모는 자식을 담을 수 있다. truenew Parent() instanceof ChildChild c = new Parent() //자식은 부모를 담을 수 없다. falsenew Child() instanceof ChildChild c = new Child(.. 2024. 12. 31. 다형성과 캐스팅 다형적 참조public class Parent { public void parentMethod() { System.out.println("Parent.parentMethod"); } }public class Child extends Parent { public void childMethod() { System.out.println("Child.childMethod"); } } public class PolyMain { public static void main(String[] args) { Parent poly = new Child(); // 다형적 참조 poly.parentMethod(); }}부모 타.. 2024. 12. 30. 상속 상속관계public class Child extends Parents { ...}상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해주는 기능상속을 사용하려면 extends 키워드를 사용상속의 대상은 오직 하나부모 클래스(슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스(서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스상속과 메모리 구조객체 생성 시 ElectricCar 뿐만 아니라 상속 관계에 있는 Car까지 함께 포함해서 인스턴스를 생성참조값은 x001로 하나이지만 실제로 그 안에서는 Car, ElectricCar라는 두가지 클래스 정보가 공존상속 관계를 사용하면 부모의 필드와.. 2024. 12. 12. static 멤버 변수(필드)의 종류public class TempData { public String name; // 인스턴스 변수 public static int count; // 클래스 변수 = static 변수 = 정적 변수}인스턴스 변수 : static이 붙지 않은 멤버 변수 static이 붙지 않은 멤버 변수는 인스턴스를 생성해야 사용 가능인스턴스 변수는 인스턴스를 만들 때 마다 새로 만들어짐클래스 변수 : static이 붙은 멤버 변수클래스 변수, 정적 변수, static 변수등으로 부름static이 붙은 멤버 변수는 인스턴스와 무관하게 클래스에 바로 접근하여 사용 가능클래스 변수는 자바 프로그램을 시작할 때 딱 1개만 생성인스턴스와는 다르게 여러곳에서 공유하는 목적으로 주로 사용인스턴.. 2024. 12. 8. 이전 1 2 3 4 ··· 8 다음