- package com.Lland.test;
- public class A {
- public void print(){
- System.out.println("this is A");
- }
- }
- public class B extends A {
- public void print(){
- System.out.println("this is B");
- }
- }
- public class MainClass {
- public static void main(String[] args) {
- A a = new B();
- B b1 = (B)a;
- //B b2 = (B)new A();
- a.print();
- b1.print();
- //b2.print();
- }
- }
复制代码 看上面的代码
A类是B类的的父类 B类是A类的子类
B类是能自动转到A类的
A a = new B();这句没有错
但是A类是不能向子类转换
B b2 = (B)new A();这句会抛出java.lang.ClassCastException的异常
有一种情况除外
A a = new B();
B b1 = (B)a;
用父类来实列来接收子类的实列 然后能强转回子类去 |