java 子类与父类转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 子类与父类转换相关的知识,希望对你有一定的参考价值。

比如在这个类中:
public void paint(Graphics oldg)

Graphics2D g = (Graphics2D)oldg;
BasicStroke stroke = new BasicStroke(10);
g.setStroke(stroke);
Line2D line = new Line2D.Float(0,0,20,30);
g.draw(line);
父类Graphics转换成了子类Graphics2D,并且使用子类的方法,不是说父类不能转换成子类的吗?

A extends B.
B b = new A();
A a = (A) b.
以上是没有问题的。其实在调用paint(Graphics oldg)时所传入的参数oldg本身就是Graphics2D对象。你可以在方法的开始加上System.out.println(oldg);就明白了。
参考技术A 这个是强制类型转换,如果这个类原本就是子类的,就可以通过强制类型转化为子类,否则就会抛转化异常。

20165210 Java第四周学习总结

20165210 Java第四周学习总结

教材学习内容

  • 第五章学习总结

  1. 子类与父类:
  • 子类:

    class 子类名 extends 父类名 {
    ...
    }
  • 类的树形结构
  1. 子类的继承性:
  • 子类和父类在同一包中的继承性
  • 子类和父类不在同一包中的继承性
  • 继承关系的UML图
  • protected的进一步说明
  1. 子类与对象
  • 子类对象的特点
  • 关于instanceof运算符
  1. 成员变量的隐藏的方法重写
  • 成员变量的隐藏:
    子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量。
    子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量,也就是说,子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量。
  • 方法重写:
    重写的语法规则
    重写的目的
  1. super关键字
  • 用super操作被隐藏的成员变量的方法
  • 使用super调用父类的构造方法
  1. final关键字
  • final类

    final class A {
    ...
    }
  • final方法
  • 常量
  1. 对象的上转型对象

    Animal a;
    a = new Tiger();
    或
    Animal a;
    Tiger b=new Tiger();
    a = b;
  2. 继承与多态
  3. abstract类和abstract方法

    abstract class A {
    ...
    }
  • 第六章学习总结

  1. 接口:

    interface Printable {
    final int MAX=100;
    viod add();
    float sum(float x ,float y);
    }
  2. 实现接口:
  • 类实现接口
  • 重写接口中的方法
  • 接口的细节说明
  1. 接口的UML图
  2. 接口回调
  3. 理解接口
  4. 接口与多态
  5. 接口参数
  6. abstract类与接口的比较
  • abstract类和接口的比较如下:
    abstract类和接口都可以有abstract方法
    接口中只可以有常量,不能有变量;而abstract类中既可以有常量,也可以有变量
    abstract类中也可以有非abstract方法,接口不可以。
  1. 面向接口编程

    代码托管

    技术分享图片

感悟

这周的代码还是比较多的,而且内容也比较难,接口学起来也很难








以上是关于java 子类与父类转换的主要内容,如果未能解决你的问题,请参考以下文章

SV中父类与子类句柄转换,即子类的扩展类与父类句柄转换等问题

SV中父类与子类句柄转换,即子类的扩展类与父类句柄转换等问题

父类与子类的转换as,is

父类对象是不是可以强制转换成子类的对象?为啥?

类型转换

java 子类与父类