Bài đăng nổi bật

Phần 1: Hãy xây dựng lớp theo sơ đồ lớp dưới đây.




Trong đó:
Lớp Shape là lớp trừu tượng gồm
  • 2 thuộc tính là color và filled.
  • Các phương thức khởi tạo không tham số và có tham số
  • Phương thức trừu tượng: getArea() – tính diện tích một hình bất kỳ, getPerimeter() – tính chu vi một hình bất kỳ.
  • Phương thức toString() được ghi đè từ lớp Object

Lớp CirleRectangle là các lớp được kế thừa từ lớp Shape cần cài đặt các phương thức trừu tượng.

Lớp Square là lớp được kế từ từ lớp Rectangle

Phần 2: Viết lớp Test chứa hàm main() để thực hiện các tác vụ như sau:


Shape s1 = new Circle(5.5, "RED", false);  // Upcast Circle to Shape
System.out.println(s1);                    // which version?
System.out.println(s1.getArea());          // which version?
System.out.println(s1.getPerimeter());     // which version?
System.out.println(s1.getColor());
System.out.println(s1.isFilled());
System.out.println(s1.getRadius());
  
Circle c1 = (Circle)s1;                   // Downcast back to Circle
System.out.println(c1);
System.out.println(c1.getArea());
System.out.println(c1.getPerimeter());
System.out.println(c1.getColor());
System.out.println(c1.isFilled());
System.out.println(c1.getRadius());
  
Shape s2 = new Shape();
  
Shape s3 = new Rectangle(1.0, 2.0, "RED", false);   // Upcast
System.out.println(s3);
System.out.println(s3.getArea());
System.out.println(s3.getPerimeter());
System.out.println(s3.getColor());
System.out.println(s3.getLength());
  
Rectangle r1 = (Rectangle)s3;   // downcast
System.out.println(r1);
System.out.println(r1.getArea());
System.out.println(r1.getColor());
System.out.println(r1.getLength());
  
Shape s4 = new Square(6.6);     // Upcast
System.out.println(s4);
System.out.println(s4.getArea());
System.out.println(s4.getColor());
System.out.println(s4.getSide());
 
// Take note that we downcast Shape s4 to Rectangle,
//  which is a superclass of Square, instead of Square
Rectangle r2 = (Rectangle)s4;
System.out.println(r2);
System.out.println(r2.getArea());
System.out.println(r2.getColor());
System.out.println(r2.getSide());
System.out.println(r2.getLength());
  
// Downcast Rectangle r2 to Square
Square sq1 = (Square)r2;
System.out.println(sq1);
System.out.println(sq1.getArea());
System.out.println(sq1.getColor());
System.out.println(sq1.getSide());
System.out.println(sq1.getLength());


CodeLean.vn
Facebook: CodeLean Community 

Post a Comment

أحدث أقدم