Kế thừa, Mở rộng, Ghi đè

Lập trình hướng đối tượng với S3 và R6 trong R

Richie Cotton

Data Evangelist at DataCamp

Lập trình hướng đối tượng với S3 và R6 trong R
thing_factory <- R6Class(
  "Thing",
  public = list(
    do_something = function() {
      message("the parent do_something method")
    }
  )
)
Lập trình hướng đối tượng với S3 và R6 trong R
child_thing_factory <- R6Class(
  "ChildThing",
  inherit = thing_factory,

public = list( do_something = function() { message("the child do_something method") },
do_something_else = function() { message("the child do_something_else method") }
)
)
Lập trình hướng đối tượng với S3 và R6 trong R
a_child_thing <- child_thing_factory$new()
a_child_thing$do_something()
the child do_something method
Lập trình hướng đối tượng với S3 và R6 trong R

 

 

private$ truy cập các trường private

self$ truy cập phương thức public trong chính đối tượng

super$ truy cập phương thức public trong lớp cha

Lập trình hướng đối tượng với S3 và R6 trong R
child_thing_factory <- R6Class(
  "ChildThing",
  inherit = thing_factory,
  public = list(
    do_something = function() {
      message("the child do_something method")
    },
    do_something_else = function() {
      message("the child do_something_else method")

self$do_something()
super$do_something()
} ) )
Lập trình hướng đối tượng với S3 và R6 trong R

 

a_child_thing <- child_thing_factory$new()
a_child_thing$do_something_else()
the child do_something_else method
the child do_something method
the parent do_something method
Lập trình hướng đối tượng với S3 và R6 trong R

Tóm tắt

  • Ghi đè (Override) bằng cách dùng cùng tên
  • Mở rộng (Extend) bằng cách dùng tên mới
  • self$ truy cập phương thức public trong chính đối tượng
  • super$ truy cập phương thức public trong lớp cha
Lập trình hướng đối tượng với S3 và R6 trong R

Ayo berlatih!

Lập trình hướng đối tượng với S3 và R6 trong R

Preparing Video For Download...