2020년 9월 19일 토요일

JAVA의 추상클래스, 추상메소드(자바/JAVA/자바교육/자바강의/자바동영상/자바강좌/추천JAVA강좌/JAVA동영상)

JAVA의 추상클래스, 추상메소드(자바/JAVA/자바교육/자바강의/자바동영상/자바강좌/추천JAVA강좌/JAVA동영상)


https://youtu.be/Qe9uIUDl4WU

 

1. 추상 메소드(Abstract method)

메소드 선언만 있고 구현없이 (중괄호없이 세미콜론이 뒤에 오는) 선언 된 메서드 입니다.

abstract 리턴타입 메소드이름() ;

추상 메소드는 자식 클래스에서 상속받아 실제 구현을 해야 합니다. (Overriding)

추상 메소드를 만드는 이유는 어떤 행위를 반드시 해야만 하지만 실제 어떻게 행동 할지는 자식클래스들이 상속받아서 입맛에 맞게 구현을 하라는 의미 입니다.

 

 

2. 추상 클래스(Abstract class)

추상 메소드를 하나 이상 포함하면 반드시 추상 클래스가 되어야 합니다.

문법적으로 클래스 정의 앞에 abstract 키워드를 사용하면 그 클래스가 추상 메소드를 가지는지 여부와 관계없이 추상클래스가 되고 new 할 수 없는 클래스가 됩니다.

클래스를 설계할 때 추상화란 공통적인 속성과 행동을 정의하는 것 입니다.

회사의 모든 사원들을 대상으로 클래스를 설계한다고 했을 때 모든 사원들의 공통적인 속성(사번, 이름)과 행동(“출근한다”, “퇴근한다”, “일한다”)을 추출하도 이를 가지는 최 상위의 추상 클래스(사원 클래스 : Emp)를 만들고 출근/퇴근은 실제 구현을 하고 “일한다”는 추상 메소드로 정의를 합니다.

프로그래머(Programmer) , 디자이너(Designer) 클래스를 정의하고 프로그래머는 “개발”을 하고 디자이너는 “디자인”을 하니 각각 Emp 클래스를 상속받아 Programmer는 “개발을 한다“, 디자이너는 “디자인을 한다"라고 자신의 입맛에 맞게 구현을 합니다.

 

3. 실습

package javatest;

 

abstract class Emp {

private String ename;

private String empno;

 

void gotoWork() {

System.out.println(ename + " 출근합니다.");

}

void getOff() {

System.out.println(ename + " 퇴근합니다.");

}

// Emp를 상속 받는 클래스에서 입맛에 맞게 구현을 하나는 의미

abstract void work();

public String getEname() {

return ename;

}

 

public void setEname(String ename) {

this.ename = ename;

}

 

public String getEmpno() {

return empno;

}

 

public void setEmpno(String empno) {

this.empno = empno;

}

}

 

class Programmer extends Emp {

@Override

void work() {

System.out.println(getEname() + " 이(가) 개발을 합니다");

}

}

 

class Designer extends Emp {

@Override

void work() {

System.out.println(getEname() + " 이(가) 디자인을 합니다");

}

}

 

public class AbstractClassTest {

public static void main(String[] args) {

// Emp e = new Emp(); //객체생성 불가능

Programmer p = new Programmer();   p.setEmpno("1111"); p.setEname("홍길동");

Designer d = new Designer();   d.setEmpno("2222"); d.setEname("김길동");

p.gotoWork(); p.work(); p.getOff();

d.gotoWork(); d.work(); d.getOff();

}

}

 

 

// 실행

홍길동 출근합니다.

홍길동 이(가) 개발을 합니다

홍길동 퇴근합니다.

김길동 출근합니다.

김길동 이(가) 디자인을 합니다

김길동 퇴근합니다.

 

#추상클래스, #자바추상클래스, #추상메소드, #자바추상메소드, #자바동영상, #자바강의, #자바교육, #자바강좌, #자바, #JAVA, #자바동영상강의, #추천자바강의, #추천자바강좌, #JAVA동영상, #JAVA강의, #JAVA강좌, #JAVA교육, #JAVA, #추천JAVA강의, #추천JAVA교육, #추천JAVA강좌, #자바소스, #자바실습   

 

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...