티스토리 뷰
package Chapter7;
class student //student 클래스
{
void learn()
{
System.out.println("배우기");
}
void eat()
{
System.out.println("밥먹기");
}
void say()
{
System.out.println("선생님 안녕하세요!");
}
}
class leader extends student //leader 클래스는 student 클래스를 상속 받는다
{
void lead()
{
}
void say()
{
System.out.println("선생님께 인사"); //오버라이딩(함수재정의)
super.say(); //부모 클래스 안의 say()함수 실행한다.
}
}
public class Inheritance2
{
public static void main(String[] args)
{
leader leader1 = new leader(); //leader 클래스를 객체 생성
leader1.say();
//leader은 student를 상속 받음 두개의 클래스에 같은 이름과 형태의 함수가 존재 -> 오버라이딩
//오버라이딩되어 자식함수가 함수를 재정의함. leader 안의 say 함수 실행
//-> 실행 후 다음 코드에서 super.say() 명령어를 만남
//-> 부모 클래스의 say()함수를 명시적 호출해주어 실행한다.
}
}
class student 코드에서 오류가 발생했다.
already defined 되었다고 표기되어 있었다.
이 문장의 의미는 이미 student라는 클래스가 존재한다는 뜻인데
코드에서 같은 클래스명을 찾을 수 없었다.
같은 패키지 안에 같은 클래스명을 가지고 있어도 오류가 발생하는 것을 알 수 있었다.
클래스명을 student2로 변경하여 오류를 제거할 수 있었다.
package Chapter7;
class student2 //student 클래스
{
void learn()
{
System.out.println("배우기");
}
void eat()
{
System.out.println("밥먹기");
}
void say()
{
System.out.println("선생님 안녕하세요!");
}
}
class leader extends student2 //leader 클래스는 student 클래스를 상속 받는다
{
void lead()
{
}
void say()
{
System.out.println("선생님께 인사"); //오버라이딩(함수재정의)
super.say(); //부모 클래스 안의 say()함수 실행한다.
}
}
public class Inheritance2
{
public static void main(String[] args)
{
leader leader1 = new leader(); //leader 클래스를 객체 생성
leader1.say();
//leader은 student를 상속 받음 두개의 클래스에 같은 이름과 형태의 함수가 존재 -> 오버라이딩
//오버라이딩되어 자식함수가 함수를 재정의함. leader 안의 say 함수 실행
//-> 실행 후 다음 코드에서 super.say() 명령어를 만남
//-> 부모 클래스의 say()함수를 명시적 호출해주어 실행한다.
}
}
'코딩 > 오류 노트' 카테고리의 다른 글
FileNotFoundException 오류 (0) | 2023.10.26 |
---|---|
생성자 호출 오류 (0) | 2023.10.23 |
중괄호 위치에 따른 오류 (0) | 2023.10.18 |
출력문 지시자 오류(%d, %n, %f, %c, %s, %b) (0) | 2023.10.17 |
함수명 일치 (0) | 2023.10.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday