interface Shape {
public double area();
}
class Circle implements Shape {
private double radius;
public Circle(double r){radius = r;}
public double area(){return Math.PI*radius*radius;}
}
class Square implements Shape {
private int wid;
public Square(int w){wid = w;}
public double area(){return wid *wid;}
}
public class Poly{
public static void main(String args[]){
Shape[] s = new Shape[2];
s[0] = new Circle(10);
s[1] = new Square(10);
System.out.println(s[0].getClass().getName());
System.out.println(s[1].getClass().getName());
}
}
Trong một nỗ lực để hiểu khái niệm về đa hình, tôi thấy bài sau (https://stackoverflow.com/a/4605772/112500) nhưng tôi nhận thấy rằng Charlie đã tạo ra lớp Shape với một phương pháp chưa thực hiện.Hiểu đa hình với nhiều lớp học và một hình thức giao diện của instantiation
Như người ta có thể nhìn thấy từ mã của tôi, tôi chuyển đổi lớp đó thành một giao diện và sau đó sử dụng nó để khởi tạo một lớp ẩn danh mà sau đó được gọi là phương thức thích hợp.
Ai đó có thể cho tôi biết nếu giải pháp của tôi có âm thanh không? Bạn có viết mã theo cách khác không? Tại sao việc sử dụng giao diện trên cả hai mặt của hàm dấu bằng như vậy?
Cảm ơn.
Caitlin
Bạn đã tạo lớp ẩn danh trong mã được đăng ở đâu? – NINCOMPOOP
Bạn có nghĩa là dòng 'Shape [] s = new Shape [2]'? Bạn không tạo bất kỳ cá thể nào của 'Hình dạng' ở đó, chỉ một mảng có thể chứa 2' Hình dạng '. –
@Heuster Suy luận hay! – NINCOMPOOP