背景
当我们想用父类引用 子类中父类没有的成员函数就必须得进行强制类型转换。
但是这还是比较复杂的
知识
强制类型转化有两种:
(目标类型)被转化对象
目标类型(被转化对象)
场景
interface Area{//接口
double PI=3.14159265359;
double calculateArea();
}
class MyCircle implements Area{
double r;
public MyCircle(double t) {//初始化
r=t;
}
public double calculateArea() {//求圆的面积
return PI*r*r;
}
public double getCircumference() {//求圆的周长
return 2*PI*r;
}
}
public class TestArea {
public static void main(String[] args) {
Area aGraphic=new MyCircle(5.0);//接口调用子类
System.out.println(aGraphic.calculateArea());//输出圆的面积
System.out.println(((MyCircle)aGraphic).getCircumference());//父类转子类强制类型转换 输出输出圆的周长
如上第一种方案能用
但是如下第二种方案不能用,会将MyCircle()
识别为一个函数
最后
如果博友们有什么办法实现第二种方法,欢迎在底下留言