码迷,mamicode.com
首页 > 编程语言 > 详细

Java多态

时间:2016-06-05 17:05:16      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

多态:对象的多种形态

  1.引用多态

    父类的引用可以指向本类的对象

    父类的引用可以指向子类的对象

    代码示例:

技术分享
 1 public class Parent{
 2 
 3 }
 4 public class Son{
 5 
 6 }
 7 public Test{
 8     public static void main(String[] arg){
 9         Parent p1 = new Parent();//父类的引用可以指向本类的对象
10         Parent p2 = new Son();//父类的引用可以指向子类的对象
11         //Son s1 = new Parent();//子类的引用指向父类对象,不允许
12     }
13 }
引用多态

  2.引用多态

    创建本类对象时,调用的方法是本类方法

    创建子类对象时,调用的方法为子类重写的方法或者继承的方法

    代码示例:

技术分享
 1 public class Parent{
 2     public void do(){
 3         //代码块1
 4     }
 5 }
 6 public class Son{
 7     public void do(){
 8         //代码块2
 9     }
10     public void do1(){
11         //代码块3
12     }
13 }
14 public Test{
15     public static void main(String[] arg){
16         Parent p1 = new Parent();//父类的引用可以指向本类的对象
17         Parent p2 = new Son();//父类的引用可以指向子类的对象
18         //Son s1 = new Parent();//子类的引用指向父类对象,不允许
19         p1.do();//执行代码块1,父类的引用调用本类的方法
20         p2.do();//执行代码块2,父类的引用调用子类重写的方法,如果没有重写,则是继承的方法
21         //p1.do1();//不能通过编译,父类的引用无法调用子类独有的方法
22         
23     }
24 }
25 
26 方法多态
方法多态

引用类型转换:

  1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换

  2.向下类型转换(强制类型转换),是大类型到小类型

  3.instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题

  代码示例:

技术分享
 1 public class Parent{
 2 
 3 }
 4 public class Son{
 5 
 6 }
 7 public class Son1{
 8 
 9 }
10 public Test{
11     public static void main(String[] arg){
12         Son s1 = new Son();//指向本类的对象
13         Parent p1 = s1;//自动类型提升,向上类型转换
14         Son s2 = (Son)p1;//向下类型转换,强制类型转换
15         
16         if(p1 instanceof Son1){//此处返回值为假
17         
18         }else{
19         
20         }
21         if(p1 instanceof Son){//此处返回值为真
22             
23         }else{
24         
25         }
26     }
27 }
引用类型转换

 

Java多态

标签:

原文地址:http://www.cnblogs.com/brainit/p/5560851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!