CS19 - Phương thức ảo (virtual method), lớp trừu tượng (abstract) và giao diện intterface C# .NET

Поделиться
HTML-код
  • Опубликовано: 8 янв 2025

Комментарии • 34

  • @XuanThuLab
    @XuanThuLab  3 года назад +3

    Các bạn đăng ký theo dõi ủng hô kênh nhé, cảm ơn các bạn ruclips.net/user/xuanthulab

  • @tuandattruong2718
    @tuandattruong2718 3 года назад +8

    thật sự khác biệt khi có chuyên môn về sư phạm, video tuyệt vời lắm ạ

  • @tuanvi1072
    @tuanvi1072 2 года назад +1

    Cảm ơn thầy, thầy dạy thật sự rất dễ hiểu ạ

  • @chanel25251325
    @chanel25251325 3 года назад +1

    ad dạy chi tiết và dễ hiểu ạ : love

  • @hoangbaonguyen6543
    @hoangbaonguyen6543 3 года назад +1

    chất lượng quá :D đỉnh chóp luôn

  • @hoquan9723
    @hoquan9723 Год назад

    bài này rất hay ạ

  • @HOA-NGUYEN-DEV
    @HOA-NGUYEN-DEV 7 месяцев назад

    Lâu quá không thấy ad ra video nào mới

  • @NguyenDung-gi4vc
    @NguyenDung-gi4vc Месяц назад

    4:27 overload ms là nạp chồng chứ thầy

  • @nguyenquocvuong7235
    @nguyenquocvuong7235 3 года назад

    Cảm ơn ad ạ

  • @quangphanminh1084
    @quangphanminh1084 5 месяцев назад

    một phương thức được ghi đè ở lớp con thì theo các bài trước thì thầy hd bằng từ khoá new tenphuongthuc nhưng bây giờ lại là override tenphuongthuc thì nó có giống nhau không ạ

  • @phatly
    @phatly 2 года назад +1

    cho em hỏi về abstract và interface tại sao ta là cần khai báo tên phương thức mà không dùng để định nghĩa, trong khi ta có thể tự khai báo tự định nghĩa ở class mình cần sử dụng luôn ạ?

    • @locnguyenxuan8381
      @locnguyenxuan8381 2 года назад +2

      khai báo phương thức ở lớp cơ sở và triển khai phương thức đó ở lớp kế thừa. Nó giống như lớp cha đưa ra các yêu cầu mà lớp con bắt buộc phải làm theo. Trong đa hình có 2 types là đa hình tĩnh (static polymorphism) và đa hình động (dynamic polymorphism). Đa hình tĩnh thể hiện qua overload method, còn đa hình động chính là override lại phương thức đó khi kế thừa. Đây là khái niệm quan trọng cần nắm để sau này sẽ dùng đến rất nhiều trong công việc. Dependency Injection chính là sử dụng đa hình động đó bạn

  • @hungkfc
    @hungkfc Год назад +1

    override thì phải là ghi đè chứ sao lại là nạp chồng nhỉ?

  • @jockerthe8189
    @jockerthe8189 2 года назад

    Thầy ơi thầy có khoá nào dạy spring java bằng vscode ko ạ . Em ko cấu hình đc ạ

  • @blablu2475
    @blablu2475 2 года назад

    Em đã hiệu ạ nhưng Abs sẽ giúp gì trong dự án ạ ?

  • @linhnguyenquoc3517
    @linhnguyenquoc3517 2 года назад

    anh ơi cho em hỏi, sự khác nhau giữa new và override là gì ạ, và khi nào sử dụng 2 từ này để ghi đè 1 hàm

    • @vuthiquynhvan4873
      @vuthiquynhvan4873 2 года назад

      mình có đọc được từ một nguồn rằng :
      New : Tạo một phiên bản mới cho một method không ràng buộc với phiên bản cũ ở lớp cha (hay nói cách khác nó tự ẩn cái method cũ đi)
      Override : Ghi đè lên thằng cũ, chú ý là thằng cũ vẫn tồn tại song song với thằng mới. Tùy vào kiểu của lớp (đối tượng) được khai báo sẽ có phương thức phù hợp được gọi.

    • @lehoan1954
      @lehoan1954 Год назад

      b xem lai bai tinh ke thua, va xem bai nay , ngam nghi mot luc la hieu luon, khoi tra nguon.

  • @AnhHoang-om8dx
    @AnhHoang-om8dx 3 года назад

    a ơi a có thể hướng dẫn về lập trình hướng đối tượng c# được ko ạ

    • @XuanThuLab
      @XuanThuLab  3 года назад +1

      Trong này có đầy đủ mà: ruclips.net/video/2FvmFZo9Bvw/видео.html

    • @AnhHoang-om8dx
      @AnhHoang-om8dx 3 года назад

      @@XuanThuLab à vâng tại e xem chưa hết, cảm ơn a rất nhiều

  • @nguyenquangtuan2724
    @nguyenquangtuan2724 2 года назад

    Nếu ko có từ khóa virtual, override mà vẫn ghi đè bình thường thì vẫn gọi lớp con đúng ko ad?

    • @thetannguyen9389
      @thetannguyen9389 Год назад

      cùng câu hỏi, tại sao phải có virtual trong khi ko có nó mình vẫn có thể "ghi đè" được nhỉ ?

    • @kynguyenphanle6296
      @kynguyenphanle6296 Год назад

      @@thetannguyen9389 Là vẫn đúng, nhưng nó đúng với trường hợp khi bạn đang dùng cách thông thường : "LopCon _lopcon = new LopCon();"
      Hãy thử không dùng virtual và override, ghi đè 1 cách bình thường, nhưng lúc này tạo đối tượng kiểu: "LopCha _lopcon = new LopCon();" sẽ thấy ngay vấn đề.
      Rồi hãy nói đến những thứ không thể châp nhận ở đây khi chúng ta không sử dụng 2 từ khóa đó mà dùng ghi đè thông thường:
      - Vi phạm tính kế thừa, sự vi phạm này hệt kiểu vi phạm lương tâm thôi, không ai bắt bẻ (nhưng Compiler đôi khi sẽ có warning đấy). Không thể hiện được tính đa hình trong OOP, nếu sử dụng design pattern và yêu cầu dùng "con trỏ" của lớp Cha quản lý các lớp Con để mang tính thống thể thì sao ?
      - Chắc chắn sẽ chạy được nhưng có warning từ compiler,. Nhất là khi khi bạn join dự án. Đôi khi sẽ có những lỗi warning khi compile. Và yes, nó chạy được mà ? Nhưng khách hàng sẽ SAY NO đấy, nhất là với khách hàng Nhật, bạn sẽ khóc tiếng mán nếu bị họ bắt đi sửa logic từng cái để không còn warning. Warning này đẻ ra đơn giản vì nó không mang tính "hide inherritance" của lớp Cha.

  • @bop6934
    @bop6934 3 года назад

    anh cho em hỏi là 1 class A kế thừa 1 abstract B. rồi class A làm abstract tiếp cho class C kế thừa được không ạ. Theo video hình như không được, nhưng intterface cũng không thể làm 2 class lồng nhau vậy được. Anh có lời khuyên gì không ạ. Vì yêu cầu phải có 2 lớp lồng nhau như vậy ạ.
    Em cảm ơn ạ

    • @miqshop9078
      @miqshop9078 3 года назад

      vẫn kế thừa được như thường mà bạn

  • @HuynhNguyen-qi2vw
    @HuynhNguyen-qi2vw 3 года назад

    cho em hỏi: dùng virtual/override giống như dùng new đúng không ạ? vì cả 2 đều để định nghĩa lại phương thức cha, và khi muốn dùng phương thức cha thì dùng từ khóa base.

  • @Foxmmo09
    @Foxmmo09 2 года назад

    em vẫn chưa hiểu lớp abstract công dụng để làm gì khi mà nó không có tác dụng gì hết

    • @memedaily1605
      @memedaily1605 2 года назад

      theo như mình biết thì là không cho phép tạo đối tượng mới, chỉ là cơ sở cho phép các lớp sau kế thừa

    • @locnguyenxuan8381
      @locnguyenxuan8381 2 года назад

      Đưa ra 1 quy ước các phương thức mà lớp con phải làm theo. ứng dụng thì nhiều lắm: giúp code ngắn gọn, tổ chức project khoa học dễ scale về sau mà không lo ảnh hưởng đến dự án. Dependency Injection cũng là đa hình động đấy bạn

  • @cotchii666
    @cotchii666 Год назад

    override (ghi đè)- overloading (nạp chồng) chắc anh bị nhầm ^^

  • @KhaMinhHoTube
    @KhaMinhHoTube 2 года назад

    Rất cám ơn anh ạ

  • @david_duong_CZ
    @david_duong_CZ 3 года назад

    Cảm ơn anh nhiều ạ