//super 关键字的用法
package com.wjl.zy131222;
class BaseClass
{
public int a =5;
}
public class SubClass extends BaseClass{
public int a=7;
public void accessOwner()
{
System.out.println(a);
}
public void accessBase()
{
System.out.println(super.a);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SubClass sc=new SubClass();
sc.accessBase();//5
sc.accessOwner();//7
}
}
//引用变量的强制类型转换
package com.wjl.zy131222;
public class ConverstionTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
double d=13.6;
long lNum=(long)d;
System.out.println(lNum);//13
int in=5;
//以下代码编译时出错,视图把一个数值类型变量转换为boolean类型
// boolean b=(boolean)in;
Object obj="Hello";
//obj 变量的编译时类型为Object,是String类型的父类 ,乐意强制类型转换
//而且obj变量的类型实际是String类型,所以运行时也可以通过
String objStr=(String)obj;
System.out.println(objStr);//Hello
//定义一个objPri变量,编译时类型weiobject,实际类型为Integer
Object objPri=new Integer(5);
//objPri变量的编译时类型为Object,是String类型的父类
//可以强制类型转换,erobjPri变量的类型实际上是Integer类型
//所以以下代码运行时引发ClassCastException异常
String str=(String)objPri;
System.out.println(str);
/*
把子类对象赋给父类引用变量时,被称为向上转型(upcasting),这种类型总是可以成功的
这也从另一个侧面证实了子类是一种特殊的父类。
但是把一类父类对象赋给子类引育馆变量时,就需要进行强制类型转换,而且在运行时产生ClassCastException异常
使用instanceof运算符可以让强制类型转换更安全
* */
}
}