관리 메뉴

Frog is cry

instanceOf(day24) 본문

JAVA/국비수업

instanceOf(day24)

Frog is cry 2020. 7. 31. 17:44
package day25.ex01_instanceof;

public class AA_Ex {

	public static void main(String[] args) {
		BB1 ob = new BB1();
		if(ob instanceof BB1)
			System.out.println("BB1의 객체");
		if(ob instanceof CC1)
			System.out.println("CC1의 객체");
		if(ob instanceof AA1)
			System.out.println("AA1의 객체");
	
		AA1 oa = new AA1();
		System.out.println("------------");
		
		if(oa instanceof AA1)
			System.out.println("AA1의 객체");
		if(oa instanceof BB1)
			System.out.println("BB1의 객체");
		if(oa instanceof CC1)
			System.out.println("CC1의 객체");
		
		System.out.println("------------");
		AA1 oa2 = new BB1();
		
		if(oa2 instanceof AA1) 
			System.out.println("AA1의 객체");
		if(oa2 instanceof BB1) 
			System.out.println("BB1의 객체");
		if(oa2 instanceof CC1) 
			System.out.println("CC1의 객체");
	}
}
package day25.ex02;

public class Fish_Ex {
	public static void main(String[] args) {
		Fish f = new Perch();
		Walleye w = new Walleye();
		
		// Fish클래스 f객체에 Perch를 객체를 넣어서 성립됨
		if(f instanceof Perch)
			System.out.println("f-p");
		
		// Walleye클래스 w객체에  부모가 Perch이고, 
		// Perch클래스에 부모는 Fish이기에 성립됨.
		if(w instanceof Fish)
			System.out.println("w-f");

	}
}
package day25.ex02;

public class Fish {
	
	public void run(){
		System.out.println("달린다");
	}
}
package day25.ex02;

public class Perch extends Fish{

}
package day25.ex02;

public class Walleye extends Perch{

}
package day25.ex03;

class Animal {
	public String noise() {
		return "peep";
	}
}	

class Dog extends Animal {
	public String noise() {
		return "bark";
	}
}

class Cat extends Animal {
	public String niose() {
		return "meow";
	}
}

public class Animal_Ex {
	public static void main(String[] args) {
		Animal animal = new Dog();
		Dog d1 = new Dog();
		System.out.println(animal.noise());
		System.out.println(d1.noise());
		
		
		
//		Cat cat = (Cat)animal;
//		System.out.println(Cat.noeise());
		if(animal instanceof Cat) {
			Cat cat = (Cat)animal;
			System.out.println("cat.noise");
		}else {
			System.out.println("instanceof연산식 오류");
		}
	}
}
package day25.ex03;

class Super {
	public static final String SS = "super";	// 클래스 변수는 하위 클래스에서 오버라이딩 불가
	public static String sout() {				// 클래스 메소드는 하위클래스에서 오버라이딩 불가
		return "SuperStatic";
	}
	public String nout() {
		return "SuperNormal";
	}
}


public class Super_Ex extends Super{
	public static final String SS = "sub";
	public static String sout() {
		return "SubStatic";
	}
	
	@Override
	public String nout() {
		return "SubNormal";
	}
	
	public static void main(String[] args) {
		Super s = new Super_Ex();
		// 자식 클래스의 객체를 만들어 부모 클래스 참조변수에 할당 -> 자동형변환
		Super_Ex se = new Super_Ex();
		// 자식 클래스의 객체를 만들어 자식 클래스 참조변수에 할당
		System.out.println(s.SS);	
		// 부모참조변수, 부모상수 : 클래스 변수이므로 부모메소드 출력됨
		System.out.println(s.sout());
		// 부모참조변수, 부모메소드 : 클래스 메소드이므로 부모 메소드로 출력됨.
		System.out.println(s.nout());
		// 일반타입으로 자식값을 가져오게 됨
		
		System.out.println(((Super_Ex)s).SS);
		// Super_Ex 타입으로 형변환해서 자식값을 가져옴
		System.out.println(((Super_Ex)s).sout());
		// Super_Ex 타입으로 형변환해서 자식값을 가져옴
		System.out.println(((Super_Ex)s).nout());
		// Super_Ex 타입으로 형변환해서 자식값을 가져옴
	}
}

'JAVA > 국비수업' 카테고리의 다른 글

익명클래스(day25)  (0) 2020.08.03
interface(day24)  (0) 2020.07.31
다형성, instanceOf(Day22)  (0) 2020.07.30
캐스팅(day22)  (0) 2020.07.29
protected(day21)  (0) 2020.07.28
Comments