java 多态奇怪现象,子类还没有构造完成就开始干活了,谁来帮我解释?

java代码:
package test.extend;

public  class Base {
	public Base(){
		System.out.println("基类构造");
		say();
	}
	
	public void say(){
		System.out.println("我是基类");
	}
	
	public static void main(String[] args) {
			Base base=new Child();
			
		}
}

 class Child extends Base{
	 public Child(){
		 System.out.println("子类构造");
		 say();
	 }
	 
	 @Override
	 public void say(){
		 System.out.println("我是子类");
	 }
}
运行结果:

基类构造
我是子类
子类构造
我是子类

 

 

 

 

 

 

在C#中:
 public class BaseA
    {
      public  BaseA()
        {
            Function();
        }

       public virtual void Function()
        {
           Console.WriteLine("Base::Function");
        }
    }

    class ChildA :BaseA
    {
      public  ChildA()
        {
            Function();
        }

        public virtual void Function()
        {
            Console.WriteLine("Child::Function");
        }
    }
    
运行结果:

Base:Function

Child::Function

 

在C++中:
  class BaseA
    {
        BaseA()
        {
            Function();
        }

        virtual void Function()
        {
           cout<<"Base::Function";
           cout<<endl;
        }
    }

    class ChildA : public BaseA
    {
        ChildA()
        {
            Function();
        }

        virtual void Function()
        {
            cout<<"Child::Function";
            cout<<endl;
        }
    }

        }
    }
运行结果:

Base:Function

Child::Function

开始做,坚持做,重复做
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值