→ ini namanya instance/objek
Iterator → Objek yang dapat mengingat tempat akhirnnya
ex :
mylist = [1,2,3] -> iterable objek atau objek yang dapat di iterasi
print(mylist) -> out : [1,2,3]
mylist = iter(mylist) -> membuat objek iter
print(next(mylist)) -> out : 1
print(next(mylist)) -> out : 2
print(next(mylist)) -> out : 3
method
Polymorphism C#
overiding dan overloading
pake virtual dan override kalo tipe datanya instance subclassnya ingin sama kaya superclass
jika tidak ingin pake virtual dan override maka tipe datanya instancenya harus pake sesuai dengan class overridenya.
pake hiding (new) jika kita ingin menggunakan method superclass kemudian objeknya di ubah dari superclass ke subclass. misal :
class A
{
public void Test() { Console.WriteLine("A::Test()"); }
}
class B : A
{
public new void Test() { Console.WriteLine("B::Test()"); }
}
class C : B
{
public new void Test() { Console.WriteLine("C::Test()"); }
}
class Program
{
static void Main(string[] args)
{
A a = new A();
B b = new B();
C c = new C();
a.Test(); // output --> "A::Test()"
b.Test(); // output --> "B::Test()"
c.Test(); // output --> "C::Test()"
a = new B();
a.Test(); // output --> "A::Test()"
b = new C();
b.Test(); // output --> "B::Test()"