티스토리 뷰

코딩/오류 노트

클래스명 중복

ehzim 2023. 10. 20. 17:19
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