类包含1个抽象方法,因此必须声明为抽象方法或实现其余方法

时间:2014-05-21 06:09:57

标签: php fatal-error

  

致命错误:类Validate包含1个抽象方法,因此必须在第21行的C:\ wamp \ www \ jump \ task3 \ day8 \ abstract.php中声明为abstract或实现其余方法(BaseValidator :: SetRange)< / p>

<?php
    abstract class BaseValidator
    {
        abstract function Validate($string);
        abstract function SetRange($string);
    }
    class Validate extends BaseValidator
    {
        public function Validate($string)
        {
            if (!preg_match('/[^A-Za-z]/', $string))
            {
                echo "'{$string}' contains only alphabets!";
            } 
            if (is_numeric($string))
            {
                echo "'{$string}' Conatins No. Only!<br/>";
                echo '<br>';
            }
        }
    }
    class setRange extends BaseValidator
    {
        public function SetRange($string)
        {
            if(!(strlen($string)>4 && strlen($string)<10))
            {
                echo "You are not in range of 4-10";
            }
        }
    }
    $obj = new Validate();
    $obj = $obj->Validate("Hello");
    $obj = new SetRange("hello");
    $obj = $obj->SetRange("hello");
?>

1 个答案:

答案 0 :(得分:19)

为您减少错误消息:

  

致命错误:类Validate包含1个抽象方法,必须   因此,应宣布抽象或实施其余方法   (BaseValidator :: SetRange)在C:\ wamp \ www \ jump \ task3 \ day8 \ abstract.php中   在第21行

击穿

  1. 您的班级Validate仅包含 1 抽象方法。
  2. Validate扩展的BaseValidator类具有 2 抽象方法。
  3. 这意味着您的原始类(Validate)需要在其中指定第二个抽象方法(在这种情况下将是setRange())。 < / LI>

    这意味着你可以简单地在你的课堂上设置这个功能,但是把它放空:

    class Validate extends BaseValidator
        {
            public function Validate($string)
            {
                if (!preg_match('/[^A-Za-z]/', $string))
                {
                    echo "'{$string}' contains only alphabets!";
                } 
                if (is_numeric($string))
                {
                    echo "'{$string}' Conatins No. Only!<br/>";
                    echo '<br>';
                }
            }
    
            public function setRange($string) {}
        }
    

    侧面注意:

    对于setRange课程,您需要与上述BaseValidator课程相同的内容。

    class setRange extends BaseValidator
        {
            public function Validate($string){}
    
            public function SetRange($string)
            {
                if(!(strlen($string)>4 && strlen($string)<10))
                {
                    echo "You are not in range of 4-10";
                }
            }
        }
    

    Example