티스토리 뷰

LANGUAGE/JAVA

[JAVA] 다형적변수

찰떡쿠키부스트 2017. 11. 15. 10:01

 

객체지향언어 : java, c++, c#

객체지향언어의 3가지 특징

1.상속

2.다형성

3.완전캡슐화

 


 

# 다형적변수 

자식의 메서드중에서 오버라이딩된 메서드만 접근할 수 있다.   


[sy] 부모 다형적변수=new 자식();
자식 다형적변수=new 부모(); // 컴파일에러

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[ex]
 
class A{}
class B exstends A{}
class C{ 
public static void main(String args[]){ 
  A o1=new A();
  B o2=new A(); // 컴파일에러
  A o3=new B(); // 다형적변수
  Object o4=new B(); // 다형적변수
  Object o5=o1; // 다형적변수
  B o6=o1; // 컴파일에러
}
 
[ex]
class Animal{
    void sound(){}
}
 
 
class Dog extends Animal{
   void sound(){ System.out.println("멍멍"); } 
}
 
class Cat extends Animal{
   void sound(){ System.out.println("야옹"); } 
}
 
 
class SoundTest{
   //here
}
 
class A{ 
public static void main(String args[]){ 
  Dog dog=new Dog();
  Cat cat=new Cat();
  SoundTest st=new SoundTest();
  st.test(dog);
  st.test(cat);
}
}
 
[an]
 
class SoundTest{
   void test(Animal animal){ animal.sound(); } 
cs

'LANGUAGE > JAVA' 카테고리의 다른 글

[JAVA] 자료형변환  (0) 2017.11.15
[JAVA] 기타제어자  (0) 2017.11.15
[JAVA] 메서드 오버로딩,오버라이딩  (0) 2017.11.15
[JAVA] 접근제어자  (0) 2017.11.15
[JAVA] 상속  (0) 2017.11.15
댓글