coyangi
코딩하는 고양이
coyangi
전체 방문자
오늘
어제
  • 분류 전체보기 (23)
    • 🚀 Daily Life (1)
      • 덕질 (1)
      • 회고 (0)
    • 🍎 MAC OS (1)
    • 🔫 Algorithm (1)
      • Goormlevel (0)
    • 🌈 Programming (18)
      • Dart (7)
      • ETC (1)
      • Flutter (4)
      • Git (0)
      • Javascript (1)
      • Laravel (3)
      • PHP (2)
    • 🌎 Server (1)
    • 🧠 Database (0)
      • MySQL (0)
    • 💻 Computer Science (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • flutter
  • HOBBY FAIR
  • config
  • 덕질
  • crud
  • 맥
  • Sizedbox
  • dart
  • XAMPP
  • 웹서버
  • 데이터 구조
  • 앱
  • override
  • ajax
  • Containe
  • Server
  • CENTER
  • 알고리즘
  • 서버구축
  • Laravel
  • php
  • argument
  • 플루터
  • Class
  • json
  • parameter
  • constructor
  • 라라벨
  • Instance
  • 인자

최근 글

티스토리

개인정보

  • 티스토리 홈
  • 스토리
  • 포럼
  • 로그인
hELLO · Designed By 정상우.
coyangi

코딩하는 고양이

[Dart] 상속과 Super, Override
🌈 Programming/Dart

[Dart] 상속과 Super, Override

2022. 6. 7. 03:27

📚 상속

📍 개념

부모의 상태(field)와 행위(function)을 물려 받는 것을 의미합니다.
• 부모 클래스와 자식 클래스가 있습니다.
• 상속은 부모 클래스에서 진행됩니다.

  • 부모 클래스가 갖고 있는 변수와 함수는 자식이 사용할 수 있습니다.
  • 하지만 자식 클래스가 가지고 있는 변수와 함수는 부모가 가질 수 없습니다.

📍 예제 1

사람 클래스가 있습니다.

class Person {

}

이 사람 클래스는 이름을 가졌고 말을 하며 걸을 수 있습니다.

class Person {
  Person({
    required this.name,
  });

  final String name;

  void speak() {
    print('안녕하세요 저는 $name입니다.');
  }

  void walk() {
    print('$name, 걷고 있습니다.');
  }
}

사람 클래스는 아래와 같은 방법으로 사용할 수 있습니다.

void main() {
  Person mom = Person(name: '엄마');
  print(mom.name); // 엄마
  mom.speak(); // 안녕하세요 저는 엄마입니다.
  mom.walk(); // 엄마, 걷고 있습니다.
}

이름이 히어로인 자식 클래스를 생성합니다.

class Hero {

}

자식이 부모클래스를 상속받기 위해선 extends 키워드를 사용해야합니다.

class Hero extends Person {
}

super class person 이 생성자로 name 을 필수값으로 전달받기 때문에
아래와 같이 히어로도 생성자를 추가합니다.

class Hero extends Person {
  Hero(String name) : super(name: name);
}

히어로 클래스는 부모 클래스와 다르게 하늘을 날 수 있어
fly 함수를 추가해주었습니다.

class Hero extends Person {
  Hero(String name) : super(name: name);

  void fly() {
    print('$name 히어로 날다');
  }
}

부모는 자식의 함수를 사용할 수 없지만
자식은 부모의 함수와 변수를 마음껏 사용할 수 있습니다.

Hero child = Hero('자식');
child.speak();
child.walk();

자식은 자신만이 가지고 있는 기능(함수)를 사용할 수 있습니다.

void main() {
  Person mom = Person(name: '엄마');
  mom.speak();
  mom.walk();

  Hero child = Hero('자식');
  child.speak();
  child.walk();
  child.fly();
}

'🌈 Programming > Dart' 카테고리의 다른 글

[Dart] Getter, Setter, 접근 제한자  (0) 2022.06.06
[Dart] 클래스 생성자(Class Constructor)  (0) 2022.06.06
[Dart] 클래스(Class) 선언과 인스턴스(Instance)  (0) 2022.06.06
[Dart] 객체 다루기 Map 타입  (0) 2022.06.06
[Dart] 열거형 변수(List, Set)와 제네릭(Generic)  (0) 2022.06.06
    '🌈 Programming/Dart' 카테고리의 다른 글
    • [Dart] Getter, Setter, 접근 제한자
    • [Dart] 클래스 생성자(Class Constructor)
    • [Dart] 클래스(Class) 선언과 인스턴스(Instance)
    • [Dart] 객체 다루기 Map 타입
    coyangi
    coyangi
    경기도 모 창고에서 은둔하다 양지 바른 땅으로 올라온 고양이

    티스토리툴바