C#C
C#3y ago
barcode

❔ Question about abstraction

public interface ILocatable
{
    public double Longitude { get; set; }
    public double Latitude { get; set; }
    
    public double DistanceTo(double longitude, double latitude)
    {
        const double R = 6371; // Earth radius in kilometers

        double dLat = (latitude - Latitude) * Math.PI / 180;
        double dLon = (longitude - Longitude) * Math.PI / 180;
        double lat1 = Latitude * Math.PI / 180;
        double lat2 = latitude * Math.PI / 180;

        double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
                   Math.Sin(dLon / 2) * Math.Sin(dLon / 2) * Math.Cos(lat1) * Math.Cos(lat2);
        double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));

        return R * c;
    }
}


Is this a correct usage of interfaces? then having
public class Center : BaseEntity, ILocatable

implement an abstract class an and interface
Was this page helpful?