추상 클래스를 사용할 때주의를 기울여야하는 몇 가지 주요 사항 :
하나 이상의 추상 방법을 포함하는 클래스는 추상 클래스로 선언해야합니다.
수업을 추상 클래스로 선언한다고해서 반드시 추상 방법이 포함되어있는 것은 아닙니다.
일반적으로 특정 방법은 추상 클래스에 포함되어서는 안된다고 생각합니다.
초록 클래스는 인스턴스화 할 수 없습니다. 즉,이 클래스의 객체를 만들 수 없습니다.
예제 코드 :
코드 사본은 다음과 같습니다.
java.util.*;
/**
*이 프로그램은 추상 수업을 보여줍니다.
* @version 1.01 2004-02-21
* @Author Cay Horstmann
*/
공개 계급 개인 테스트
{
public static void main (String [] args)
{
사람 [] 사람 = 새로운 사람 [2];
// 학생 및 직원 대상으로 사람들 배열을 채우십시오.
People [0] = 신입 사원 ( "Harry Hacker", 50000, 1989, 10, 1);
사람들 [1] = 신입생 ( "Maria Morris", "Computer Science");
// 모든 사람 객체의 이름과 설명 인쇄
for (person p : people)
System.out.println (p.getName () + "," + p.getDescription ());
}
}
초록 수업인
{
공공 사람 (String n)
{
이름 = n;
}
공개 초록 문자열 getDescription ();
공개 문자열 getName ()
{
반환 이름;
}
개인 문자열 이름;
}
클래스 직원은 사람을 연장합니다
{
공공 직원 (String N, Double S, Int Year, Int Month, Int Day)
{
슈퍼 (n);
급여 = s;
GregorianCalendar Calendar = New GregorianCalendar (연도, 월 -1, 일);
Hireday = calendar.gettime ();
}
Public Double GetSalary ()
{
반품 급여;
}
공개 날짜 gethireday ()
{
반환 고용;
}
공개 문자열 getDescription ()
{
return string.format ( "급여가 $%인 직원", 급여);
}
공개 무효 인사 (이중 제 2 배)
{
이중 인상 = 급여 * Bypercent / 100;
급여 += 인상;
}
개인 이중 급여;
개인 날짜 고용;
}
수업 학생은 사람을 연장합니다
{
/**
* @param n 학생의 이름
* @param m 학생의 전공
*/
공개 학생 (문자열 n, 문자열 m)
{
// n을 슈퍼 클래스 생성자로 전달합니다
슈퍼 (n);
메이저 = m;
}
공개 문자열 getDescription ()
{
" + 메이저를 전공하는 학생"반품;
}
개인 문자열 전공;
}
코드 블록에서 :
코드 사본은 다음과 같습니다.
for (person p : people)
System.out.println (p.getName () + "," + p.getDescription ());
p.getDescription ()에서 특정 서브 클래스의 서브 클래스 객체를 참조하는 메소드.
컴파일러는 클래스에서 선언 된 호출 메소드 만 허용하기 때문에 개인 클래스의 getDescription ()을 생략 할 수 없습니다.