Cut and paste code below:
3 Files in code below:
[1]: The Base Abstract Class
[2]: The Sub Class that Extends the Abstract Class
[3]: .FLA file testing it.
ABSTRACT CLASS CODE:_________________________________________________
package com.JMIM02.ABS_TestAbstract{
//Class Summary:
//A test to see if I can make a TEST abstract class by simply throwing an ERROR in the constructor
//Of the class that is an abstract class. Would only work if you DON'T need to call the superMethod
//When using a class that extends this class.
public class ABS_TestAbstract{
protected var testVar:Number = 77;
public function ABS_TestAbstract() {
overrideToEmpty();
}//[x]
protected function overrideToEmpty():void{
throw new Error("Abstract Class Cannot be instantiated by itself");
}//[x]
}//class
}//package
SUPERCLASS/SUBCLASS/DERIVED CLASS CODE:_______________________________
package com.JMIM02.Uses_TestAbstract{
//Class Summary:
//A test class that tests if I can make a "Pseudo Abstract Class"
//By making the Base-Class's constructor throw an error.
//This would prevent the class from being directly instantiated.
import com.JMIM02.ABS_TestAbstract.ABS_TestAbstract;
public class Uses_TestAbstract extends ABS_TestAbstract {
public function Uses_TestAbstract() {
testVar = 333;
trace("testVar===" + testVar);
}//constructor
//make an empty function so that you can instantiate the base-class.
protected override function overrideToEmpty():void{}//[x]
}//class
}//package
.FLA FILE TESTING CLASS:______________________________________________
import com.JMIM02.Uses_TestAbstract.Uses_TestAbstract;
import com.JMIM02.ABS_TestAbstract.ABS_TestAbstract;
var inst:Uses_TestAbstract = new Uses_TestAbstract();
//block of code below WILL throw error since you cannot directly instance the base-class:
/*
var base:ABS_TestAbstract = new ABS_TestAbstract();
*/
No comments:
Post a Comment