我有这4个
java clases:
1
1
public class Rect { double width; double height; String color; public Rect( ) { width=0; height=0; color="transparent"; } public Rect( double w,double h) { width=w; height=h; color="transparent"; } double area() { return width*height; } }
2
public class PRect extends Rect{ double depth; public PRect(double w,double h,double d) { width=w; height=h; depth=d; } double area() { return width*height*depth; } }
3
public class CRect extends Rect{ String color; public CRect(double w,String c) { width=w; height=h; color=c; } double area() { return width*height; } }
4
public class test { public test() { } public static void main(String[] args) { Rect r1=new Rect(2,3); System.out.println("area of r1="+r1.area()); PRect pr1=new PRect(2,3,4); System.out.println("area of pr1="+pr1.area()); CRect cr1=new CRect(2,"RED"); System.out.println("area of cr1="+cr1.area()+" color = "+cr1.color); System.out.println("\n poly_MORPHISM "); Rect r2=new Rect(1,2); System.out.println("area of r2="+r2.area()); Rect pr2=new PRect(1,2,4); System.out.println("area of pr2="+pr2.area()); Rect cr2=new CRect(1,"Blue"); System.out.println("area of cr2="+cr2.area()+" color = "+cr2.color); } }
我得到了输出:
area of r1=6.0 area of pr1=24.0 area of cr1=6.0 color = RED poly_MORPHISM area of r2=2.0 area of pr2=8.0 area of cr2=2.0 color = transparent***
为什么将cr2视为Rect(超类)并将“透明”颜色视为具有“蓝色”颜色的CRect(子类)?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。