Java中的向上造型和向下造型等

package com.study.oop.day01;
/**
 * 如果某个方法是静态 的,它的行为就不具有多态性
 * @author LuHongGang
 * @date 2017年6月5日
 * @time 下午4:19:21
 * @since 1.0
 * 构造函数并不具有多态性,它们实际上是static方法,
 * 只不过该static声明是隐式的。因此,构造函数不能够被override。
 */
public class staticDemo {
public static void main(String[] args) {
 
StaticSuper ss = new StaticSub();
ss.StaticMethod();                              // 这里调用的是父类中的静态方法  子类不能都重写父类中的该静态方法
ss.NotStaticMethod();
//ss.ThisMethodIsNotExistsInSuper();            // 程序编译不通过,向上造型   初始化后的对象只能调用 父类类型的方法和属性
/**
* Java 中向上造型: 父类类型的引用 指向子类的对象
* StaticSuper ss = new StaticSub();
*/
StaticSuper ss2 =  new StaticSuper();           // 向下造型
StaticSub  ss3 = (StaticSub) ss;              
//ss2.ThisMethodIsNotExistsInSuper();
//StaticSub ss4 = (StaticSub) new StaticSuper();//编译通过 ,运行异常
//ss3.ThisMethodIsNotExistsInSuper(); 运行时异常
System.out.println(ss3.name);
// 所以向下造型的时候 需要使用instanceof 
if(ss2 instanceof StaticSub){                   // 向下造型 的时候强制需要进行 判断  false
StaticSub ss5 = (StaticSub) ss2;
            System.out.println(ss5.name);
}else{
System.out.println(" 左边对象不是右边类的实例 ");
}
if(ss instanceof StaticSub){                    // true
StaticSub ss6 = (StaticSub) ss;
System.out.println(" 左边对象是右边类的实例 ");
ss6.ThisMethodIsNotExistsInSuper();         
}
}
}
class StaticSuper{
public static void StaticMethod(){
System.out.println("我是   父类   的静态方法");
}
public void NotStaticMethod(){
System.out.println("我是   父类   的非静态方法");
}
}
class StaticSub extends StaticSuper{
String name = "10010";
public static void StaticMethod(){
System.out.println("我是  子类  的静态方法");
}
public void NotStaticMethod(){
System.out.println("我是  子类  的非静态方法");
}
/**
*  该方法 在父类中并不存在,仅仅在子类中独有  
*  
*/
public void ThisMethodIsNotExistsInSuper(){
System.out.println("仅仅是子类独有的方法,这是 本类的一个扩展");
}
}

转载于:https://www.cnblogs.com/nice520/p/6946702.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值