JAVA/코드

2022_10_11 연습 01 Super_

0304호 2022. 10. 11. 17:37

메인클래스

package day06.super_;

public class MainClass {
	
	public static void main(String[] args) {
		
		Mother m = new Mother();
		System.out.println(m.info());
		
		Employee e = new Employee("이순식",20,"역사");
		System.out.println(e.info());
		
		
	}

}

Person (부모클래스)

package day06.super_;

public class Person {
	
	String name;
	int age;
	
//	Person(){
//		this("honggilsoon",1);
//		
//	}
	
	Person(String name){
		this(name,1);
	}
	
	Person(String name, int age){
		super();
		this.name = name.toUpperCase();
		this.age = age;
		
	}

	String info() {
		return "이름 : " + name + ", 나이 : " + age;
	}
	}

Mother 자식클래스 ( Super()로 Person클래스의 Person(String name, int age) 생성자를 블러옴.

package day06.super_;

public class Mother extends Person{
	
	
	//생략
	Mother(){
		super("최성수",20);
	}

}

 

package day06.super_;

public class Employee extends Person {
	
	String department;
	
	Employee(String name, int age, String department){
		super(name,age);
//		super();
//		this.name = name;
//		this.age = age;
		this.department = department;
	}
	
	String info() {
		//super.메서드 () = 오버라이딩된 메서드에서 부모님의 원형 메서드가 필요할때 사용
		return super.info() + ", 부서 : " + department ;
	}
	

}
package day06.super_;

public class Teacher extends Person {
	
	String subject;
	
	Teacher(String name, int age, String subject){
		super(name,age);
		this.name = name;
		this.age = age;
		this.subject = subject;
	}

	String info() {
		return super.info() + ", 과목 : " + subject;
	}

}

 

package day06.super_;

public class Student extends Person {

	String studentId;
	
	Student(String name, int age, String studentId){
		super(name,age);
//		this.name = name;
//		this.age = age;
		this.studentId = studentId;
	}
	
	String info() {
		return super.info() + ", 학번 : " + studentId;
	}
	
}