"Bad Code" Written - some education needed with the graphics module

So I just got done experimenting with some drawing code and have NO idea WHY its doing what its doing. Basically its only drawing ONE circle and not even at the coordinates specified, BUT its sending the little ball to its new parents perfectly.

My basic question isn’t how do I get this to work, but rather WHY is it working the way its working? For extra credit - why does endFill EVER need to be called? It seems to work with or without it.

Thanks!
Ben-

Main Document Class:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;

public class BallParentTestMain extends Sprite
{
    private var parentBall01:TestBall;
    private var parentBall02:TestBall;
    private var childBall:Sprite;
    
    public function BallParentTestMain()
    {
        init();
    }
    
    private function init():void
    {
       
        parentBall01 = new TestBall(0xff0000, 60, 60, 50);
        addChild(parentBall01);
        parentBall01.x = 60;
        parentBall01.y = 60;
        
        parentBall02 = new TestBall(0x00ff00, 350, 350, 50);
        addChild(parentBall02);
        parentBall02.x = 350;
        parentBall02.y = 350;
        
        childBall = new Sprite;
        parentBall01.addChild(childBall)
        childBall.graphics.beginFill(0x0000ff);
        childBall.graphics.drawCircle(0, 0, 25);
        childBall.graphics.endFill();
        
        childBall.addEventListener(MouseEvent.CLICK, onClick);
    }
    
    private function onClick(e:MouseEvent):void
    {
        trace("click");
        parentBall02.addChild(childBall);
    }
}

}

Test Ball Class
package
{
import flash.display.Sprite;

public class TestBall extends Sprite
{

    var ballColor:uint;
    var ballPosX:int;
    var ballPosY:int;
    var ballRadius:int;
        
    public function TestBall(ballColor:uint, ballPosX:int, ballPosY:int, ballRadius:int)
    {
        init(ballColor, ballPosX, ballPosY, ballRadius);
    }
    
    private function init(ballColor:uint, ballPosX:int, ballPosY:int, ballRadius:int):void
    {
        graphics.beginFill(ballColor);
        graphics.drawCircle(ballPosX, ballPosY, ballRadius);
        //graphics.endFill();
    }
}

}