❔ 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;
}
}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, ILocatablepublic class Center : BaseEntity, ILocatableimplement an abstract class an and interface