首页 > 编程语言 > 详细

java——转型

时间:2019-06-16 22:33:35      阅读:109      评论:0      收藏:0      [点我收藏+]

转型Demo

A为父类,子类B、C

第20行发生向上转型,a对象调用C覆写过的print()方法

若为A a = new B(); 则调用B覆写过的print()方法

创建对象时使用向上转型,能够统一参数类型(23行),便于程序设计

 1 package inheritance;
 2 
 3 class A{
 4     public void print() {
 5         System.out.println("A.pirnt");
 6     }
 7 }
 8 class B extends A{
 9     public void print() {
10         System.out.println("B.print");
11     }
12 }
13 class C extends A{
14     public void print() {
15         System.out.println("C.print");
16     }
17 }
18 public class TestDemo {
19     public static void main(String args[]) {
20         A a1 = new B();
21         A a2 = new C();
22         fun(a1);
23         fun(a2);
24         System.out.println(a1 instanceof A);
25         System.out.println(a1 instanceof B);
26         System.out.println(a1 instanceof C);
27     }
28 public static void fun(A a) {
29     a.print();
30 }
31 }

结果:

B.print
C.print
true
true
false

如果子类有自己的特殊方法,没有在父类中定义,则父类访问子类的方法需要将父类对象向下转型:B b = (B) a,但这样会破坏参数的统一性,所以在开发中不建议使用

原则:以父类方法为主,子类可以覆写父类方法,但尽量不要扩充新方法

 

java——转型

原文:https://www.cnblogs.com/cxc1357/p/11033047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!