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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace cshapExTwo11 { class Program { static void Main(string[] args) { /* as is 연산자 as : 형변환과 같은 역할을 하는 연산자 - 단 형변환 실패가 있을 수 있다. - 형변환 실패했을 경우 null을 리턴 is : 해당 객체의 타입이 일치하는지 여부를 bool값으로 반환 하는 연산자 */ // is Human human = new Programmer(); Programmer programmer; if(human is Programmer) { programmer = (Programmer)human; programmer.programming(); } // as - 정상 형변환 Human human2 = new Designer(); Designer designer2 = human2 as Designer; if (designer2 != null) designer2.design(); // as - 형변환 안됨 Human human3 = new Programmer(); Designer designer3 = human3 as Designer; if (designer3 != null) designer3.design(); else Console.WriteLine("디자이너형이아님"); Console.ReadKey(); } } class Human { public void showInfo() { Console.WriteLine("Human"); } } class Programmer : Human { public void programming() { Console.WriteLine("Programmer"); } } class Designer : Human { public void design() { Console.WriteLine("Designer"); } } } | cs |
-----------------------------결과창----------------------------
Programmer
Designer
디자이너형이아님
'프로그래밍' 카테고리의 다른 글
2_10. struct (구조체) (0) | 2019.01.22 |
---|---|
2_9. virtual / override / new (0) | 2019.01.22 |
2_7.상속관계에서 클래스간의 형변환 (0) | 2019.01.21 |
2_6.상속(base키워드, sealed키워드) (0) | 2019.01.20 |
2_5. 접근 제한자/한정자 (0) | 2019.01.18 |
댓글