kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 응집도
  • 결합도
  • 설계 원칙
  • 책임
  • 객체지향 프로그래밍
  • 역할

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

Laguage

[Java] Abstract Classes in Java

2022. 7. 1. 00:43

 

추상 클래스란 공통된 기능과 속성들을 정의한 클래스를 말한다.

공통된 기능은 메서드를 구현하여 한 곳에서 사용할 수 있게 정의해두고 공통된 기능인데 내부 로직을 다르게 만들어야 한다면 메서드 시그니처만 정의 해주면 된다.

추상 클래스는 is a 관계에 사용되는 것을 알고 들어가자.

 

다음으로 is a 관계인 “테슬라와 현대차는 자동차다" 로 예를 들어볼것입니다.

 

테슬라는 자율주행 모드를 지원하는 대표적인 차량이다. 현대차도 최근에 자율주행 모드를 지원하는 차량을 많이 판매하고 있다.

두 차량의 공통된 기능은 자율주행모드 다. 하지만 자율주행모드를 구현하는 로직은 서로 다를 것이다. 같으면 내부 스파이가 있을 수 도!!!!

차량들을 클래스로 만들어 구현해보자.

 

  • 자동차 → 상위 클래스

 

public abstract class Car {

    // fields....

    public abstract void modeChange();
}

 

  • 테슬라
public class Tesla extends Car {

    // fields....

    @Override
    public void modeChange() {
        System.out.println("테슬라 자율주행 로직");
    }
}

 

  • 현대
public class Hyundai extends Car {

    // fields....

    @Override
    public void modeChange() {
        System.out.println("현대 자율주행 로직");
    }
}

 

 

 

이렇게 공통된 기능을 한 곳에 모아 추상 클래스로 정의 하여 상속하는 방식으로 구현 해보았다.

 

'Laguage' 카테고리의 다른 글

[Java] Inner Class  (0) 2022.07.14
[Java] Generic Programing  (0) 2022.07.14
[Java] Inheritance in Java  (0) 2022.07.09
[Java] Java Interface  (0) 2022.07.01
[Java] Polymorphism in Java  (3) 2022.06.30
[Java] Java 에서 파일을 읽는 여러가지 방법  (0) 2022.06.26
[Java] What is Serialization in Java?  (0) 2022.06.24
[Java] ArchUnit 아키텍처 테스트에 대해 알아보자  (0) 2022.06.18
    'Laguage' 카테고리의 다른 글
    • [Java] Inheritance in Java
    • [Java] Java Interface
    • [Java] Polymorphism in Java
    • [Java] Java 에서 파일을 읽는 여러가지 방법
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바