First of all, let's start with a a short explanation of these functions.
For example if you have the folowing code:
package
{
   
    /**
     * ...
     * @author DukeW
     */

    public class Simple extends Example
    {
        public function button()

        {
           
        }
    }
   
}

and
package
{
   
    /**
     * ...
     * @author DukeW
     */

    public class Example
    {
        public function Example()

        {
           
        }
    }
   
}

This code:
var b:Simple= new Simple();
trace(getQualifiedClassName(b)<wbr>);
trace(<wbr>getQualifiedSuperclassName(b))<wbr>;

will trace "Simple" the first time "Example" the second time. Otherwisew said getQualifiedClassName will return the name of the class(type if you prefer). getQualifiedSuperclassName will return the name of the class that is directly inherited by the class/type of your variable.
While the functions explained above return a String getDefinitionByName returns an object representing a class.
For example:
package
{
    import fl.controls.Button;
    import flash.display.MovieClip;

    import flash.utils.<wbr>getDefinitionByName;
   
    /**
     * ...
     * @author ...
     */

    public class Example extends MovieClip
    {
        public function Example():void
        {

            var tempC:Class= getDefinitionByName("fl.<wbr>controls.Button") as Class;
            var b=new tempC();
            addChild(b);
        }
    }
   
}

A button will show up at x:0 y:0
Don't forget  you need to have to drag and drop a Button(from components) to the scene (in order to get in the library) if you want to use Buttons in your FLA.

Now that we have that settled let's see common applications.

Let's say you have 50 Symbols on your scene, 20 black ones 30 red ones.
If you want to add event listeners only to the red ones you have two options:
1. Export the symbol in the library for ActionScript and write a small class only for adding the listener
2. Export the symbol in the library for ActionScript. (For the sake of the following example lets say that we name the Class "red" and "black"). and then loop trough the children of the stage adding listeners only to objects witch are "red" for example:
package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.utils.<wbr>getDefinitionByName;
    import flash.utils.<wbr>getQualifiedClassName;
   
    /**
     * ...

     * @author ...
     */

    public class Example extends MovieClip
    {
        public function Example():void
        {
            for (var i:Number = 0; i < this.numChildren; i++)
            {

                if (getQualifiedClassName(<wbr>getChildAt(i)) == "red")
                {
                    getChildAt(i).<wbr>addEventListener(MouseEvent.<wbr>CLICK, sayRed);
                }
            }
        }

       
        private function sayRed(e:MouseEvent):void
        {
            trace("I is red")
        }
    }    
}

I'm not saying this way is better than the first one, it really depends on your coding style and goal.
Now lets say that you have 50 TextFields(or any other symbols or components, that aren't relevant to your code) next to the 50 symbols and you want to add click events to your 50 symbols. When clicked you want them to say there color. The simplest way to do this with the functions discussed is to extend Circle from red and black(Base class in symbol properties window) and then use this code:
package
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.utils.getQualifiedClassName;
    import flash.utils.getQualifiedSuperclassName;
   
    /**
     * ...
     * @author DukeW
     */

    public class Example extends MovieClip
    {
        public function Example():void
        {
            for (var i:Number = 0; i < this.numChildren; i++)
            {
                if (getQualifiedSuperclassName(getChildAt(i)) == "Circle")
                {
                    getChildAt(i).addEventListener(MouseEvent.CLICK, sayIt);
                }
            }
        }
       
        private function sayIt(e:MouseEvent):void
        {
            //in our case you could just say trace(getQualifiedClassName(e.currentTarget)) but
            //But for the sake of this example im gonna write the long version
            if (getQualifiedClassName(e.currentTarget) == "red")
            {
                trace("I am red!")
            }
            else
            {
                trace("I am black!")
            }
           
        }
    }
   
}


You might be thinking that these examples are ok, but what are the practical uses. I cannot give you an exact answer, but usually when you have groups of symbols(like we had a group of red symbols and a group of black ones), and you either need to perform certain operations on them, or simply need to create them with "new" these functions come in handy.