using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Inheritance
{
    // Listing 6-28
    public class LibraryBase
    {
        public virtual void Start() { }
    }

    // Listing 6-30
    public class CustomerDerived : LibraryBase
    {
        public new void Start()
        {
            Console.WriteLine("Metoda Start typu pochodnego ");
        }
    }

    class Examples28_31
    {
        public static void UsingHiddenAndVirtual()
        {
            // Listing 6-29
            var d = new CustomerDerived();
            LibraryBase b = d;

            d.Start();
            b.Start();

        }
    }

    // To fragment definicji typu z biblioteki klas .NET Framework, dlatego został
    // umieszczony w komentarzu.
    // Listing 6-31
    //public interface ISet<T> : ICollection<T>
    //{
    //    new bool Add(T item);
    //    ... pozostałe składowe pominięte w celu skrócenia listingu
    //}

}
