虚方法

using System;
namespace app{
    class MyClass{
        public static void Main(string[] args){
            B b= new B();
            A a= new A();
            Console.WriteLine(a.a(13));
            Console.WriteLine(b.a(13));
        }
    }
    class A{
        int b=1;
        public  int a(){
            return b;
        }
        public virtual int a( int _b){ //虚方法
            return b=_b;
        }
    } 
    class B:A{
        public override int a (int _b){
            return base.a(88);
        }
    }
}

using System;
namespace app{
    class MyClass{
        public static void Main(string[] args){
            B b= new B();
            A a= new A();
            Console.WriteLine(a.a(13));
            Console.WriteLine(b.a(13));
        }
    }
    class A{
        int b=1;
        public  int a(){
            return b;
        }
        public  int a( int _b){ //虚方法
            return b=_b;
        }
    } 
    class B:A{
        public new int a (int _b){  //
            return base.a(88);
        }
    }
}
using System;
namespace app{
    class MyClass{
        public static void Main(string[] args){
            B b= new B();
            A a= new A();
            Console.WriteLine(a.a(13));
            Console.WriteLine(b.a(13));
        }
    }
    class A{
        int b=1;
        public  int a(){
            return b;
        }
        public  virtual int a( int _b){ //虚方法
            return b=_b;
        }
    } 
    class B:A{
        public override sealed int a (int _b){
            return base.a(88);
        }
    }
    class C:B{
        public override int a (int _b){ //报错
            return base.a(88);
        }
    }
}
using System;
namespace app {
    class MyClass {
        public static void Main (string[] args) {
            B b = new B ();
            A a = new A ();
            a.a ();
            b.a ();
            a = b; //访问基类的方法
            a.a ();
        }
    }
    class A {
        public void a () { //虚方法
            Console.WriteLine ("虚方法!");
        }
    }
    class B : A {
        public new void a () {
            Console.WriteLine ("新虚方法!");
        }
    }
}
using System;
class Dog{
    public static void Main(string[] args){
        B b = new B();
        A a= new A();
        b.a();
        a.a();
        a=b;
        a.a();//B类的方法
    }
}
class A{
    public virtual void a(){
        Console.WriteLine("A.a方法");
    }
}

class B:A{
    public override void a(){
        Console.WriteLine("B.a方法");
    }
}




posted @ 2019-04-10 16:53  liliyou  阅读(114)  评论(0编辑  收藏  举报