1. Constraint public enum VehicleType { Personal=1, Family, Sports, Racing } 2. IInteriorDesign public interface IInteriorDesign { void AddInteriorDesign(params string[] design); string GetInteriorDesign(); } 3. IExteriorDesign public interface IExteriorDesign { void AddExteriorDesign(params string[] designs); string GetExteriorDesign(); } 3. Vehicle protected Vehicle(){} protected Vehicle(string model, int yearMake, int cc, VehicleType vehicleType) { this.Model = model; this.YearMake = yearMake; this.CC = cc; this.VehicleType = vehicleType; } public string Model { get; set; } public int YearMake { get; set; } public int CC { get; set; } public VehicleType VehicleType { get; set; } public abstract string Details(); 4. ToWheeler public class TwoWheeler : Vehicle, IExteriorDesign { private readonly List<string> exDesign = new List<string>(); public TwoWheeler() { } public TwoWheeler(string model,int yearMake,int cc,VehicleType vehicleType,double mileage,string startingMethod):base(model,yearMake,cc,vehicleType) { this.Mileage = mileage; this.StartingMethod = startingMethod; } public double Mileage { get; set; } public string StartingMethod { get; set; } public void AddExteriorDesign(params string[] designs) { this.exDesign.AddRange(designs); } public override string Details() { return $"{Model}, {CC}cc {YearMake}\n{Mileage}KMPL {StartingMethod}"; } public string GetExteriorDesign() { return string.Join(", ", this.exDesign); } } 5. FourWheeler public class FourWheeler : Vehicle, IInteriorDesign { private readonly List<string> inDesign = new List<string>(); public FourWheeler() { } public FourWheeler(string model, int yearMake, int cc, VehicleType vehicleType,int noOfSeats):base(model, yearMake, cc, vehicleType) { this.NumberOfSeats=noOfSeats; } public int NumberOfSeats { get; set; } public void AddInteriorDesign(params string[] design) { this.inDesign.AddRange(design); } public override string Details() { return $"{Model},{CC}cc {YearMake}\n{NumberOfSeats} seats"; } public string GetInteriorDesign() { return string.Join(", ", inDesign); } } 6. MotorCycle public sealed class MotorCycle:TwoWheeler { public MotorCycle() { } public MotorCycle(string model, int yearMake, int cc, VehicleType vehicleType,double mileage,string startingMethod, string frontBreak, string rearBreak):base(model, yearMake, cc, vehicleType,mileage,startingMethod) { this.FrontBreak = frontBreak; this.RearBreak = rearBreak; } public string FrontBreak { get; set; } public string RearBreak { get; set; } public override string Details() { return $"{base.Details()}\nFront Break {FrontBreak}, Rear Break {RearBreak}"; } } 7. Car public sealed class Car:FourWheeler { public Car() { } public Car(string model, int yearMake, int cc, VehicleType vehicleType, int noOfSeats,int noOfDoors):base(model, yearMake, cc, vehicleType,noOfSeats) { this.NumberOfDoors = noOfDoors; } public int NumberOfDoors { get; set; } public override string Details() { return $"{base.Details()}, {NumberOfDoors} doors"; } } 8. Main static void Main(string[] args) { MotorCycle m1 = new MotorCycle("R15V5",2026,160,VehicleType.Personal,35,"Self+kick","Disc","Disc"); m1.AddExteriorDesign("Vip Horn", "3-part handlebar"); Console.WriteLine(m1.Details()); Console.WriteLine(m1.GetExteriorDesign()); Console.WriteLine(); Car c1 = new Car("Land Cruiser",2017,3200,VehicleType.Family,10,4); c1.AddInteriorDesign("GPS", "Auto Drive"); Console.WriteLine(c1.Details()); Console.WriteLine(c1.GetInteriorDesign()); Console.ReadKey(); }
License
—
Deps
0
Install Size
—
Vulns
✓ 0
Published
Dec 16, 2024
$ dotnet add package SweetSharpNo README available.