티스토리 뷰
1. 개념 비교
추상화 | 구현 세부사항을 숨기고 필요한 기능한 보여주는 개념 |
캡슐화 | 데이터를 은닉하고 메서드만 외부에 노출하는 구조 |
다형성 | 동일한 메서드를 여러 클래스에 재정의하는 구조 |
상속성 | 기존 클래스를 재사용해서 새로운 클래스를 만드는 구조 |
// 1. 추상화: Animal이라는 추상 클래스(필요한 기능만 정의)
abstract class Animal {
private String name; // 2. 캡슐화: private 변수 (외부에서 직접 접근 못 함)
public Animal(String name) { // 생성자
this.name = name;
}
public String getName() { // getter 메소드만 외부에 제공
return name;
}
public abstract void sound(); // "소리 내기"는 구체 동물들이 알아서 구현
}
// 3. 상속성: Dog, Cat이 Animal을 상속
class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void sound() { // 4. 다형성: sound()를 Dog에 맞게 재정의
System.out.println(getName() + " says: Bark!");
}
}
class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void sound() { // 4. 다형성: sound()를 Cat에 맞게 재정의
System.out.println(getName() + " says: Meow!");
}
}
// 메인 클래스
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog("Buddy"); // 업캐스팅
Animal myCat = new Cat("Kitty");
myDog.sound(); // Buddy says: Bark!
myCat.sound(); // Kitty says: Meow!
}
}
반응형
'AI > Python' 카테고리의 다른 글
[Python] Global Interpreter Lock, CUDA (0) | 2025.04.17 |
---|---|
[Python] Json과 집합(set), CSV, assert(), 클로저, lambda, map, filter (0) | 2025.04.01 |
[Python] 객체지향프로그래밍- 추상적인 부모 클래스 (0) | 2025.03.28 |
[Python] 부동소수점, 숫자 반올림 (0) | 2025.03.27 |
[Python] 문자열의 메소드, 문자열을 숫자로, 지수표현 (0) | 2025.03.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 기초
- 줄넘기
- opic
- 갓생
- 프로그래머스
- 루틴
- 빅데이터 분석기사
- SQL
- 아침
- 고득점 Kit
- 30분
- 실기
- 습관
- C언어
- 영어회화
- llm
- Python
- 운동
- 스크랩
- Ai
- IH
- ChatGPT
- 경제
- 다이어트
- 티스토리챌린지
- 아침운동
- 오픽
- 오블완
- 미라클모닝
- 뉴스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함