Combing cellRenderer

I am attempting to combine two AS files that are acting as cellRenderers individually but not simultaneously for cells in a datagrid in a Flash document I have created. The first styles the cells to have alternating row colors and the second allows for non-text content to be rendered.

The issue is whenever I attempt to combine them the document reports errors with “super” and “override” among others.

Any help would be greatly appreciated:

Alternating row colors:

package {
	import fl.controls.listClasses.CellRenderer;
	import fl.controls.listClasses.ICellRenderer;

	public class AlternatingRowColors extends CellRenderer implements ICellRenderer {

		public function AlternatingRowColors():void {

			super();

		}
		public static  function getStyleDefinition():Object {

			return CellRenderer.getStyleDefinition();

		}

		override protected  function drawBackground():void {

			if (_listData.index % 2 == 0) {

				setStyle("upSkin",CellRenderer_upSkinGray);

			} else {

				setStyle("upSkin",CellRenderer_upSkinDarkGray);

			}

			drawBackground();
			super.drawBackground();
		}
	}
}

Displaying non-text content:

package {
    import fl.containers.UILoader;
    import fl.controls.listClasses.ICellRenderer;
    import fl.controls.listClasses.ListData;
    import fl.core.InvalidationType;
    import fl.data.DataProvider;
    import flash.events.Event;

    public class LoaderCellRenderer extends UILoader implements ICellRenderer {
        protected var _data:Object;
        protected var _listData:ListData;
        protected var _selected:Boolean;

        public function LoaderCellRenderer():void {
            super();
        }

        public function get data():Object {
            return _data;
        }
        public function set data(value:Object):void {
            _data = value;
            source = value.data;
        }

        public function get listData():ListData {
            return _listData;
        }
        public function set listData(value:ListData):void {
            _listData = value;
            invalidate(InvalidationType.DATA);
            invalidate(InvalidationType.STATE);
        }

        public function get selected():Boolean {
            return _selected;
        }
        public function set selected(value:Boolean):void {
            _selected = value;
            invalidate(InvalidationType.STATE);
        }

        public function setMouseState(state:String):void {
        }
    }
}

Hybrid that doesn’t work:

package {
    import fl.containers.UILoader;
    import fl.controls.listClasses.ICellRenderer;
    import fl.controls.listClasses.ListData;
    import fl.core.InvalidationType;
    import fl.data.DataProvider;
    import flash.events.Event;
	
	import fl.controls.listClasses.CellRenderer;

    public class hybrid extends UILoader implements ICellRenderer {
        protected var _data:Object;
        protected var _listData:ListData;
        protected var _selected:Boolean;

        public function LoaderCellRenderer():void {
            super();
        }

        public function get data():Object {
            return _data;
        }
        public function set data(value:Object):void {
            _data = value;
            source = value.data;
        }

        public function get listData():ListData {
            return _listData;
        }
        public function set listData(value:ListData):void {
            _listData = value;
            invalidate(InvalidationType.DATA);
            invalidate(InvalidationType.STATE);
        }

        public function get selected():Boolean {
            return _selected;
        }
        public function set selected(value:Boolean):void {
            _selected = value;
            invalidate(InvalidationType.STATE);
        }

        public function setMouseState(state:String):void {
        }
    
	////////////////
	
		public static  function getStyleDefinition():Object {

			return CellRenderer.getStyleDefinition();

		}

		override protected function drawBackground():void {


			if (_listData.index % 2 == 0) {

				setStyle("upSkin",CellRenderer_upSkinGray);

			} else {

				setStyle("upSkin",CellRenderer_upSkinDarkGray);

			}

			drawBackground();
			super.drawBackground();
		}	
	}
}