[JAVA] 자바 OOP의 특징 3 - 추상화 (추상 클래스와 인터페이스)
·
백엔드/JAVA
추상화일반 클래스와 동일한데 추상 메서드를 하나라도 포함하면 추상 클래스Service.java → interfaceServiceImpl.java → class (클래스가 인터페이스를 상속받으면 구현부 = implement)특징객체 생성 불가extends 사용 가능abstract 키워드를 사용하여 추상 클래스 생성인터페이스나 추상클래스를 상속 받는 서브클래스는 반드시 그들의 모든 추상 메서드를 오버라이딩 해야 한다. 이 특징을 기억하면서 추상화 과정을 살펴보자.날 수 있는 새와 슈퍼맨이 있다고 하자.둘은 ‘날 수 있는 동물’에 포함된다. 즉, ‘새와 슈퍼맨은 동물이다’(is-a)가 성립된다.우리는 Animal이라는 추상 클래스를 만들어 볼 것이다.public abstract class Animal { //..
[JAVA] 자바 OOP의 특징 1, 2 - 상속과 다형성 (+캐스팅, 오버라이딩, final의 개념)
·
백엔드/JAVA
자바의 변수의 타입은 컴파일 시점에 만들어지고,객체는 인터프리터(런타임 시점)에 만들어짐변수의 다형성하나의 변수로 다양한 객체를 생성할 수 있음 (단, 상속을 전제로 해야 함)// 부모의 데이터 타입으로 자식의 객체 생성이 가능하다// teacher와 student가 person을 상속 받고 있을 때 아래와 같이 타입의 다형성이 허용됨PersonDTO teacher = new TeacherDTO();PersonDTO student = new StudentDTO();PersonDTO [] personArr = new PersonDTO[10]; // 배열을 생성하면서 배열의 요소를 Person 타입으로 지정한 것personArr[0] = teacher;personArr[1] = student;// 단일 타입..
[JAVA] Java Package 선언의 의미와 역할
·
백엔드/JAVA
파일/폴더 규칙 :소스 파일의 package 선언은 폴더 경로와 정확히 일치해야 한다// src/main/java/com/example/repository/UserRepository.java package com.example.repository;기본 패키지는 package 선언을 생략해도 되지만 지양한다 → 테스트/빌드 도구가 싫어함 1. 네임스페이스 관리// 다른 패키지의 같은 이름 클래스 구분com.company.Usercom.client.User같은 이름의 클래스가 있어도 패키지가 다르면 충돌하지 않음 2. 접근 제어public class MyClass { private String secret; // 같은 클래스만 String defaultField; /..
해안해
'java' 태그의 글 목록