Frog is cry
instanceOf(day24) 본문
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