SlideShare a Scribd company logo
1 of 20
“Object Programming(3)”
객체지향 프로그래밍(3)
1. Abstract, Interface
Object
Object 프로그래밍은 세상에 있는 정보들을 효율적으로 담기 위하여 만들어졌다.
객체지향의 4대 특징
추상화
다형성캡슐화
상속성
캡슐화(Cabsulate)
Tell Don’t ask
데이터를 묻지말고 기능을 실행
Method에서 생성한 객체의 Method 만 호출
Parameter로 받은 객체의 Method만 호출
필드를 참조하는 객체의 Method만 호출
Method
&
Variables
Class
캡슐화(Cabsulate)
class SinivelCap {
void Task() {
System.out.println("콧물이 멈추
기 시작합니다..");
}
}
class SneezeCap {
void Task() {
System.out.println("재채기가 멈
추기 시작합니다..");
}
}
class SnuffleCap {
void Task() {
System.out.println("코가 뚫리기
시작합니다...");
}
}
public class ColdPatient {
public static void main(String[] args) {
ColdPatient cp = new
ColdPatient();
SinivelCap 콧물 = new
SinivelCap() ;
SneezeCap 재채기 = new
SneezeCap() ;
SnuffleCap 코가뻥 = new
SnuffleCap();
cp.TaskSinivelCap(콧물);
cp.TaskSneezeCap(재채기);
cp.TaskSnuffleCap(코가뻥);
}
void TaskSinivelCap(SinivelCap 콧물) {콧
물.Task();};
void TaskSneezeCap(SneezeCap 재채기)
{재채기.Task();};
void TaskSnuffleCap(SnuffleCap 코가뻥)
{코가뻥.Task();};
캡슐화(Cabsulate)
코감기는 항상 콧물, 재채기, 코막힘을 동반한다.
class SinivelCap
class SneezeCap
class SnuffleCap
복용 순서는 SinivelCap, SneezeCap, SnuffleCap 순이다.
IF
순서대로 복용하지 않을시 큰일이 벌어진다면?
캡슐화(Cabsulate)
public class ColdPatient {
public static void main(String[] args) {
Contac600 contack = new
Contac600();
ColdPatient cp = new
ColdPatient();
cp.Task(contack);
}
void Task(Contac600 contack) {
contack.Task();
}
}
class Contac600 {
private SinivelCap 콧물;
private SneezeCap 재채기;
private SnuffleCap 코가뻥;
public Contac600() {
// TODO Auto-generated
constructor stub
콧물 = new SinivelCap() ;
재채기 = new SneezeCap() ;
코가뻥 = new SnuffleCap();
}
void Task() {
콧물.Task();
재채기.Task();
코가뻥.Task();
}
}
외부에서 약물이 수정되
어서는 안된다!
순서대로 복용이 지켜질
수 밖에 없다.
상속성(Extends)
Class Cat {
boolean eye;
boolean ear;
boolean nose;
String name;
}
Class Bear {
boolean eye;
boolean ear;
boolean nose;
String name;
}
Class Dog {
boolean eye;
boolean ear;
boolean nose;
String name;
}
상속성(Extends)
중복없이 기능들을 재사용할수 없을까?
상속성(Extends)
public class Ground {
public static void main(String[] args) {
고양이 야옹이 = new 고양이();
강아지 멍멍이 = new 강아지();
곰 곰팅이 = new 곰();
}
}
class 동물 {
boolean eye;
boolean ear;
boolean nose;
String name;
void move() {
System.out.println("움직입니다.");
}
}
class 고양이 extends 동물{
public 고양이() {
// TODO Auto-generated constructor stub
eye = true;
ear = true;
nose = true;
name = "고양이";
}
@Override
void move() {super.move()}
}
class 강아지 extends 동물{
public 강아지() {
// TODO Auto-generated constructor stub
eye = true;
ear = true;
nose = true;
name = "강아지";
}
@Override
void move() {super.move()}
}
class 곰 extends 동물{
public 곰() {
// TODO Auto-generated constructor stub
eye = true;
ear = true;
nose = true;
name = "곰";
}
@Override
void move() {super.move()}
}
다형성(polymophizem)
고양이, 강아지, 곰은 동물을 상속받기에
동물의 이름으로써 고양이 강아지 곰의 메소드를 쓸수있다.
public class Ground {
public static void main(String[] args) {
동물 야옹이 = new 고양이();
동물 멍멍이 = new 강아지();
동물 곰팅이 = new 곰();
}
}
상속성(Extends)
동물들은 걸어다닐수 있지만 짖기도 한다.
모두 다르게 짖는데 어떻게 할수있을까?
추상클래스
상속 받을시 반듯이 재정의 하여야하는 클래스
추상 메서드를 가지고 있다.
abstract class 동물 {
boolean eye;
boolean ear;
boolean nose;
String name;
void move() {
System.out.println("움직입니다.");
}
abstract void bark();
}
추상클래스
Class Cat extends 동물{
boolean eye;
boolean ear;
boolean nose;
String name;
@Override
void
move(){super.move()}
@Override
void bark(){ };
}
Class Bear extends 동물 {
boolean eye;
boolean ear;
boolean nose;
String name;
@Override
void
move(){super.move()}
@Override
void bark(){ };
Class Dog extends 동물 {
boolean eye;
boolean ear;
boolean nose;
String name;
@Override
void
move(){super.move()}
@Override
void bark(){ };
모두 다르게 짖기에 알아서 정의해 쓰시오!
인터페이스
눈 O
코 O
귀 O
걷다 O
수영 X
눈 O
코 O
귀 O
걷다 O
수영 X
눈 O
코 O
귀 O
걷다 O
수영 X
눈 O
코 O
귀 O
걷다 O
수영 O
오리는 동물이다. 하지만 고양이, 곰, 강아지는 수영을 못하지만
오리는 수영을 할수있다. 객체지향 설계에 문제가 생기기 시작한다!
인터페이스
interface 수영 {
boolean swim_check = false;
void swimming(boolean swim_check);
}
오리는 수영을 할수있다! 그렇기에
수영이라는 Interface를 만든다
Interface는 추상 메서드를 가지고있는 Class이다.
오직 추상 메서드만을 가질수 있다.
인터페이스
interface 수영 {
boolean swim_check = false;
void swimming(boolean swim_check);
}
오리는 수영을 할수있다! 그렇기에
수영이라는 Interface를 만든다
Interface는 추상 메서드를 가지고있는 Class이다.
오직 추상 메서드만을 가질수 있다.
인터페이스
class 오리 extends 동물 implements 수영{
public 오리() {
// TODO Auto-generated constructor
stub
eye = true;
ear = true;
nose = true;
name = "오리";
}
@Override
void move() { super.move();
}
@Override
void bark() {
}
@Override
public void swimming(boolean swim_check) {
}
}
감사합니다.

More Related Content

What's hot

Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeYoung-Beom Rhee
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)beom kyun choi
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js functionYoung-Beom Rhee
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍Young-Beom Rhee
 
Function calling convention
Function calling conventionFunction calling convention
Function calling conventionYuk SeungChan
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
파이썬 모듈 패키지
파이썬 모듈 패키지파이썬 모듈 패키지
파이썬 모듈 패키지SeongHyun Ahn
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
Javascript prototype & inheritance
Javascript prototype & inheritanceJavascript prototype & inheritance
Javascript prototype & inheritance지수 윤
 
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로Oracle Korea
 
파이썬 유용한 라이브러리
파이썬 유용한 라이브러리파이썬 유용한 라이브러리
파이썬 유용한 라이브러리SeongHyun Ahn
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기jeong seok yang
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorYoung-Beom Rhee
 
Java, android 스터티1
Java, android 스터티1Java, android 스터티1
Java, android 스터티1Heejun Kim
 
Why what how kotlin
Why what how kotlinWhy what how kotlin
Why what how kotlinSewonKo
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Yong Joon Moon
 

What's hot (20)

Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scopeJavascript 함수(function) 개념, 호출패턴, this, prototype, scope
Javascript 함수(function) 개념, 호출패턴, this, prototype, scope
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
 
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
스파르탄스터디 E04 Javascript 객체지향, 함수형 프로그래밍
 
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
 
Stack frame
Stack frameStack frame
Stack frame
 
Function calling convention
Function calling conventionFunction calling convention
Function calling convention
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
파이썬 모듈 패키지
파이썬 모듈 패키지파이썬 모듈 패키지
파이썬 모듈 패키지
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
Javascript prototype & inheritance
Javascript prototype & inheritanceJavascript prototype & inheritance
Javascript prototype & inheritance
 
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
[Main Session] 미래의 Java 미리보기 - 앰버와 발할라 프로젝트를 중심으로
 
파이썬 유용한 라이브러리
파이썬 유용한 라이브러리파이썬 유용한 라이브러리
파이썬 유용한 라이브러리
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operator
 
Java, android 스터티1
Java, android 스터티1Java, android 스터티1
Java, android 스터티1
 
자바모델 클래스에 날개를달자_롬복(Lombok)
자바모델 클래스에 날개를달자_롬복(Lombok)자바모델 클래스에 날개를달자_롬복(Lombok)
자바모델 클래스에 날개를달자_롬복(Lombok)
 
Just java
Just javaJust java
Just java
 
Why what how kotlin
Why what how kotlinWhy what how kotlin
Why what how kotlin
 
Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706Jupyter notebok tensorboard 실행하기_20160706
Jupyter notebok tensorboard 실행하기_20160706
 

Similar to Java mentoring of samsung scsc 3

이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO
 
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기
실용주의 디자인패턴   2 인터페이스로 프로그래밍하기실용주의 디자인패턴   2 인터페이스로 프로그래밍하기
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기Cosmos Shin
 
안드로이드 세미나
안드로이드 세미나안드로이드 세미나
안드로이드 세미나Chul Ju Hong
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumerChang Yoon Oh
 
안드로이드 설계코드 노하우 및 개발방법
안드로이드 설계코드 노하우 및 개발방법안드로이드 설계코드 노하우 및 개발방법
안드로이드 설계코드 노하우 및 개발방법mosaicnet
 
Composite pattern
Composite patternComposite pattern
Composite patternkidoki
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initializationEunjoo Im
 
안드로이드 세미나
안드로이드 세미나안드로이드 세미나
안드로이드 세미나ang0123dev
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11hungrok
 
JavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and ConstructorsJavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and ConstructorsHyuncheol Jeon
 
읽기 좋은 코드가 좋은 코드다 Part one
읽기 좋은 코드가 좋은 코드다   Part one읽기 좋은 코드가 좋은 코드다   Part one
읽기 좋은 코드가 좋은 코드다 Part oneJi Hun Kim
 

Similar to Java mentoring of samsung scsc 3 (20)

이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
 
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기
실용주의 디자인패턴   2 인터페이스로 프로그래밍하기실용주의 디자인패턴   2 인터페이스로 프로그래밍하기
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기
 
안드로이드 세미나
안드로이드 세미나안드로이드 세미나
안드로이드 세미나
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumer
 
Spring Boot 2
Spring Boot 2Spring Boot 2
Spring Boot 2
 
Java 다형성
Java 다형성Java 다형성
Java 다형성
 
JDK 변천사
JDK 변천사JDK 변천사
JDK 변천사
 
안드로이드 설계코드 노하우 및 개발방법
안드로이드 설계코드 노하우 및 개발방법안드로이드 설계코드 노하우 및 개발방법
안드로이드 설계코드 노하우 및 개발방법
 
Goodbye null
Goodbye nullGoodbye null
Goodbye null
 
Communism OOP
Communism OOPCommunism OOP
Communism OOP
 
Composite pattern
Composite patternComposite pattern
Composite pattern
 
Scala
ScalaScala
Scala
 
Swift3 subscript inheritance initialization
Swift3 subscript inheritance initializationSwift3 subscript inheritance initialization
Swift3 subscript inheritance initialization
 
ES6 for Node.js Study 5주차
ES6 for Node.js Study 5주차ES6 for Node.js Study 5주차
ES6 for Node.js Study 5주차
 
안드로이드 세미나
안드로이드 세미나안드로이드 세미나
안드로이드 세미나
 
Java 강의자료 ed11
Java 강의자료 ed11Java 강의자료 ed11
Java 강의자료 ed11
 
JavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and ConstructorsJavaScript Patterns - Chapter 3. Literals and Constructors
JavaScript Patterns - Chapter 3. Literals and Constructors
 
읽기 좋은 코드가 좋은 코드다 Part one
읽기 좋은 코드가 좋은 코드다   Part one읽기 좋은 코드가 좋은 코드다   Part one
읽기 좋은 코드가 좋은 코드다 Part one
 
Tdd 4장
Tdd 4장Tdd 4장
Tdd 4장
 
Kotlin with fp
Kotlin with fpKotlin with fp
Kotlin with fp
 

Java mentoring of samsung scsc 3

  • 3. Object Object 프로그래밍은 세상에 있는 정보들을 효율적으로 담기 위하여 만들어졌다.
  • 5. 캡슐화(Cabsulate) Tell Don’t ask 데이터를 묻지말고 기능을 실행 Method에서 생성한 객체의 Method 만 호출 Parameter로 받은 객체의 Method만 호출 필드를 참조하는 객체의 Method만 호출 Method & Variables Class
  • 6. 캡슐화(Cabsulate) class SinivelCap { void Task() { System.out.println("콧물이 멈추 기 시작합니다.."); } } class SneezeCap { void Task() { System.out.println("재채기가 멈 추기 시작합니다.."); } } class SnuffleCap { void Task() { System.out.println("코가 뚫리기 시작합니다..."); } } public class ColdPatient { public static void main(String[] args) { ColdPatient cp = new ColdPatient(); SinivelCap 콧물 = new SinivelCap() ; SneezeCap 재채기 = new SneezeCap() ; SnuffleCap 코가뻥 = new SnuffleCap(); cp.TaskSinivelCap(콧물); cp.TaskSneezeCap(재채기); cp.TaskSnuffleCap(코가뻥); } void TaskSinivelCap(SinivelCap 콧물) {콧 물.Task();}; void TaskSneezeCap(SneezeCap 재채기) {재채기.Task();}; void TaskSnuffleCap(SnuffleCap 코가뻥) {코가뻥.Task();};
  • 7. 캡슐화(Cabsulate) 코감기는 항상 콧물, 재채기, 코막힘을 동반한다. class SinivelCap class SneezeCap class SnuffleCap 복용 순서는 SinivelCap, SneezeCap, SnuffleCap 순이다. IF 순서대로 복용하지 않을시 큰일이 벌어진다면?
  • 8. 캡슐화(Cabsulate) public class ColdPatient { public static void main(String[] args) { Contac600 contack = new Contac600(); ColdPatient cp = new ColdPatient(); cp.Task(contack); } void Task(Contac600 contack) { contack.Task(); } } class Contac600 { private SinivelCap 콧물; private SneezeCap 재채기; private SnuffleCap 코가뻥; public Contac600() { // TODO Auto-generated constructor stub 콧물 = new SinivelCap() ; 재채기 = new SneezeCap() ; 코가뻥 = new SnuffleCap(); } void Task() { 콧물.Task(); 재채기.Task(); 코가뻥.Task(); } } 외부에서 약물이 수정되 어서는 안된다! 순서대로 복용이 지켜질 수 밖에 없다.
  • 9. 상속성(Extends) Class Cat { boolean eye; boolean ear; boolean nose; String name; } Class Bear { boolean eye; boolean ear; boolean nose; String name; } Class Dog { boolean eye; boolean ear; boolean nose; String name; }
  • 11. 상속성(Extends) public class Ground { public static void main(String[] args) { 고양이 야옹이 = new 고양이(); 강아지 멍멍이 = new 강아지(); 곰 곰팅이 = new 곰(); } } class 동물 { boolean eye; boolean ear; boolean nose; String name; void move() { System.out.println("움직입니다."); } } class 고양이 extends 동물{ public 고양이() { // TODO Auto-generated constructor stub eye = true; ear = true; nose = true; name = "고양이"; } @Override void move() {super.move()} } class 강아지 extends 동물{ public 강아지() { // TODO Auto-generated constructor stub eye = true; ear = true; nose = true; name = "강아지"; } @Override void move() {super.move()} } class 곰 extends 동물{ public 곰() { // TODO Auto-generated constructor stub eye = true; ear = true; nose = true; name = "곰"; } @Override void move() {super.move()} }
  • 12. 다형성(polymophizem) 고양이, 강아지, 곰은 동물을 상속받기에 동물의 이름으로써 고양이 강아지 곰의 메소드를 쓸수있다. public class Ground { public static void main(String[] args) { 동물 야옹이 = new 고양이(); 동물 멍멍이 = new 강아지(); 동물 곰팅이 = new 곰(); } }
  • 13. 상속성(Extends) 동물들은 걸어다닐수 있지만 짖기도 한다. 모두 다르게 짖는데 어떻게 할수있을까?
  • 14. 추상클래스 상속 받을시 반듯이 재정의 하여야하는 클래스 추상 메서드를 가지고 있다. abstract class 동물 { boolean eye; boolean ear; boolean nose; String name; void move() { System.out.println("움직입니다."); } abstract void bark(); }
  • 15. 추상클래스 Class Cat extends 동물{ boolean eye; boolean ear; boolean nose; String name; @Override void move(){super.move()} @Override void bark(){ }; } Class Bear extends 동물 { boolean eye; boolean ear; boolean nose; String name; @Override void move(){super.move()} @Override void bark(){ }; Class Dog extends 동물 { boolean eye; boolean ear; boolean nose; String name; @Override void move(){super.move()} @Override void bark(){ }; 모두 다르게 짖기에 알아서 정의해 쓰시오!
  • 16. 인터페이스 눈 O 코 O 귀 O 걷다 O 수영 X 눈 O 코 O 귀 O 걷다 O 수영 X 눈 O 코 O 귀 O 걷다 O 수영 X 눈 O 코 O 귀 O 걷다 O 수영 O 오리는 동물이다. 하지만 고양이, 곰, 강아지는 수영을 못하지만 오리는 수영을 할수있다. 객체지향 설계에 문제가 생기기 시작한다!
  • 17. 인터페이스 interface 수영 { boolean swim_check = false; void swimming(boolean swim_check); } 오리는 수영을 할수있다! 그렇기에 수영이라는 Interface를 만든다 Interface는 추상 메서드를 가지고있는 Class이다. 오직 추상 메서드만을 가질수 있다.
  • 18. 인터페이스 interface 수영 { boolean swim_check = false; void swimming(boolean swim_check); } 오리는 수영을 할수있다! 그렇기에 수영이라는 Interface를 만든다 Interface는 추상 메서드를 가지고있는 Class이다. 오직 추상 메서드만을 가질수 있다.
  • 19. 인터페이스 class 오리 extends 동물 implements 수영{ public 오리() { // TODO Auto-generated constructor stub eye = true; ear = true; nose = true; name = "오리"; } @Override void move() { super.move(); } @Override void bark() { } @Override public void swimming(boolean swim_check) { } }