12
20

instanceof

์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•˜๋Š”์ง€ ํ™•์ธ

class Person{
	String name;
	Person(String name){
		this.name = name;
	}
	void printInfo() {
		System.out.println(name);
	}
}
class Student extends Person{
	int snum;
	Student(String name, int snum){
		super(name);
		this.snum = snum;
	}
	void printStudent() {
		System.out.println("snum: "+snum);
	}
}
class Researcher extends Person{
	int rnum;
	Researcher(String name, int rnum){
		super(name);
		this.rnum = rnum;
	}
	void printResearcher() {
		System.out.println("rnum: "+rnum);
	}
}
class Professor extends Researcher{
	String depart;
	Professor(String name, int rnum, String depart){
		super(name, rnum);
		this.depart = depart;
	}
	void printProfessor() {
		System.out.println("depart: "+depart);
	}
}

public class InstanceofEx {
	static void print(Person p) {
		if(p instanceof Person) {
			p.printInfo();
		}
		if(p instanceof Student) {
			Student s = (Student)p;
			s.printStudent();
		}
		if(p instanceof Researcher) {
			Researcher r = (Researcher)p;
			r.printResearcher();
		}
		if(p instanceof Professor) {
			Professor pro = (Professor)p;
			pro.printProfessor();
		}
	}
	
	public static void main(String[] args) {
		print(new Person("Person"));
		print(new Student("Student", 100));
		print(new Researcher("Resarcher", 1001));
		print(new Professor("Professor", 1002, "computer"));
	}

}

์˜ค๋ฒ„๋ผ์ด๋”ฉ

class Person{
	String name;
	Person(String name){
		this.name = name;
	}
	void printInfo() {
		System.out.println(name);
	}
}
class Student extends Person{
	int snum;
	Student(String name, int snum){
		super(name);
		this.snum = snum;
	}
	@Override
	void printInfo() {
		super.printInfo();
		System.out.println("snum: "+snum);
	}
	
}
class Researcher extends Person{
	int rnum;
	Researcher(String name, int rnum){
		super(name);
		this.rnum = rnum;
	}
	@Override
	void printInfo() {
		super.printInfo();
		System.out.println("rnum: "+rnum);
	}
}
class Professor extends Researcher{
	String depart;
	Professor(String name, int rnum, String depart){
		super(name, rnum);
		this.depart = depart;
	}
	@Override
	void printInfo() {
		super.printInfo();
		System.out.println("depart: "+depart);
	}
}

public class InstanceofEx {
	static void print(Person p) {
		p.printInfo();
	}
	
	public static void main(String[] args) {
		print(new Person("Person"));
		print(new Student("Student", 100));
		print(new Researcher("Resarcher", 1001));
		print(new Professor("Professor", 1002, "computer"));
	}

}
728x90
๋ฐ˜์‘ํ˜•
COMMENT