当我遇到这个时,我正在阅读这个 PowerPoint 演示文稿:
当您通过这些引用之一调用方法时,将根据所引用的接口的实际实例调用正确的版本。这是接口的关键特性之一。要执行的方法在运行时动态查找,允许在调用类的代码之后创建类。
谁能解释一下这个概念?我提到了几个网站和书籍,我仍然不清楚这个概念是如何运作的。从上面可以知道它调用了正确版本的方法。它是如何工作的,我应该何时将对象转换为接口类型。
我有模型:ArtObjects 和照片:
class Photo extends Model
{
protected $fillable = ['caption','description','alternative_text'];
public function artObject()
{
return $this->belongsTo('App\ArtObject');
}
}
class ArtObject extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'title',
'description',
'rating',
'popularity',
'type',
'price'
];
public function photos()
{
return $this->hasMany(ArtObjectPhoto::class);
}
}
Run Code Online (Sandbox Code Playgroud)
控制器:
艺术对象控制器:
public function store(ArtObjectUploadRequest $request)
{
$art_object = ArtObject::create(request(['title', 'description', 'rating', 'popularity', 'type', 'price']));
$this->validate($request, [
'title' => 'required',
'description' => 'required'
]); …Run Code Online (Sandbox Code Playgroud)