本帖最后由 FFF 于 2013-11-11 16:04 编辑
向上转型示例:
- class A {
-
- public void repeat(){
- System.out.println("---A---");
- }
- }
- class B extends A{
-
- public void repeat(){
- System.out.println("---B---");
- }
-
- public void only(){
-
- System.out.println("---only---");
- }
- }
- class Temp11_11_02{
-
- public static void main(String[] args) {
-
- A b=new B(); //向上转型
- b.repeat();
- //b.only(); Error: b虽指向子类对象,但此时丢失only()方法
- }
- }
复制代码 向下转型示例:- class Fu {
- public void smile(){
- System.out.println("父类");
- }
- }
- class son extends Fu{
-
- public void smile() {
- System.out.println("子类");
- }
- public void c(){
- System.out.println("子类c方法");
- }
- }
- class Temp11_11_02{
- public static void main(String[] args) {
- Fu f= new son(); //向上转型
- f.smile();
-
- son s=(son)f; //向下转型,编译和运行皆不会出错
- s.smile();
- s.c();
-
- Fu f2=new Fu();
- // son s1=(son)f2; //不安全的向下转型,编译无错但会运行会出错
- // s1.smile();
- // s1.c();
- }
- }
复制代码 你读一读代码。再运行一下。应该能理解个七七八八了。其他的,暂时不用深入。先打基础为主。 |