Tôi đã tìm thấy một số mã có sử dụng các từ khóa virtual
cho các chức năng, như:Từ khóa ảo, trong ActionScript, là gì?
package tryOut{
public class Parent {
public function Parent() {}
public function foo():void{
trace("Parent foo");
}//foo
public virtual function bar():void{
trace("Parent virtual bar");
}//bar
}//class
}//package
Theo như tôi hiểu cách sử dụng các từ khóa virtual
nên sửa đổi cách trọng một phương pháp làm việc, hoặc cách sử dụng một phương pháp trẻ sẽ làm việc, hoặc một cái gì đó. Nhưng có vẻ như nó chẳng có gì cả. Có gia hạn:
package tryOut {
public class Child extends Parent {
public function Child() {}
public override function foo():void {
trace("Child foo");
}//foo
public override function bar():void {
trace("Child virtual bar");
}//bar
}//class
}//package
Các bản in mã sau:
var parent:Parent = new Parent();
var child:Child = new Child();
parent.foo(); //Parent foo
child.foo(); //Child foo
parent.bar(); //Parent virtual bar
child.bar(); //Child virtual bar
var childCast:Parent = child as Parent;
parent.foo(); //Parent foo
childCast.foo(); //Child foo
parent.bar(); //Parent virtual bar
childCast.bar(); //Child virtual bar
Vì vậy, cả hai phương pháp làm việc như nhau liên quan đến việc ghi đè. Từ khóa virtual
có thay đổi điều gì đó tôi bị thiếu không?
Và trang thực tế là, đối với bất kỳ ai quan tâm: http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3_Flex/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f9b.html – LopSae
Cảm ơn LopSae, tôi thực sự chỉ có Flash mở vào thời điểm đó, vì vậy Tôi đã sử dụng trợ giúp ngoại tuyến. – Ponkadoodle