1. Trang chủ
  2. » Giáo Dục - Đào Tạo

MOB1022 slide1 ke thua

29 127 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

LẬP TRÌNH JAVA BÀI 1: KẾ THỪA PHẦN MỤC TIÊU Nắm vững phân cấp thừa kế Tái sử dụng lớp sẵn có Biết cách ghi đè phương thức Nắm vững lớp phương thức trừu tượng SỰ PHÂN CẤP THỪA KẾ Các lớp Java tồn hệ thống thứ bậc phân cấp, gọi thừa kế Lớp bậc gọi lớp cha (super class) lớp bậc gọi lớp (sub class) Trong Java lớp có lớp cha (đơn thừa kế) VÍ DỤ PHÂN CẤP THỪA KẾ class Bicycle{…} class MountainBike extends Bicycle{…} class RoadBike extends Bicycle{…} class TandemBike extends Bicycle{…} Hình Hình đa giác Hình tròn Hình chữ nhật Tam giác Hình vng DEMO Xây dựng lớp theo cấu trúc phân cấp kế thừa sơ đồ THỪA KẾ Mục đích thừa kế tái sử dụng Lớp phép sở hữu tài sản (trường phương thức) lớp cha Lớp phép sở hữu tài sản public protected lớp cha Lớp phép sở hữu tài sản mặc định {default} lớp cha lớp lớp cha định nghĩa gói Lớp khơng thể truy cập thành viên private lớp cha KẾ THỪA package poly.ho; public class NhanVien{ public String hoTen; protected double luong; public NhanVien(String hoTen, double luong){…} void xuat(){…} private double thueThuNhap(){…} } A super.hoTen B super.luong C super.xuat() D super.thueThuNhap() package poly.hcm; public class TruongPhong extends NhanVien{ public double trachNhiem; public TruongPhong (String hoTen, double luong, double trachNhiem){…} public void xuat(){ // Mã sử dụng tài sản lớp cha } } DEMO Hiện thực hóa ví dụ slide trước SỬ DỤNG SUPER Truy cập đến thành viên lớp cha cách sử dụng từ khóa super Có thể sử dụng super để gọi hàm tạo lớp cha public class Parent{ public String name; public void method(){} } public class Child extends Parent{ public String name; public void method(){ this.name = super.name; super.method() } } SỬ DỤNG SUPER package poly.ho; public class NhanVien{ public NhanVien(String hoTen, double luong){…} public void xuat(){…} } package poly.hcm; public class TruongPhong extends NhanVien{ public double trachNhiem; public TruongPhong (String hoTen, double luong, double trachNhiem){ super(hoTen, luong); this.trachNhiem = trachNhiem } public void xuat(){ super.xuat() System.out.println(trachNhiem) } } LỚP TRỪU TƯỢNG Lớp trừu tượng lớp có hành vi chưa xác định rõ Ví dụ 1: Đã hình chắn có diện tích chu vi chưa xác định cách tính mà phải hình cụ thể chữ nhật, tròn, tam giác… xác định cách tính Ví dụ 2: Sinh viên chắn có điểm trung bình chưa xác định cách tính mà phải sinh viên ngành biết môn học công thức tính điểm cụ thể Vậy lớp Hinh lớp SinhVien lớp trừu tượng phương thức tính chu vi, diện tích tính điểm chưa thực LỚP TRỪ TƯỢNG Hình Chữ nhật Tròn Hình Sinh viên lớp trừu tượng Tam giác Vng Sinh viên Chữ nhật, Tròn, Tam giác, Vng, SV IT, SV Biz lớp cụ thể SV Biz SV IT ĐỊNH NGHĨA LỚP TRỪU TƯỢNG abstract public class MyClass{ abstract public type MyMethod(); } Sử dụng từ khóa abstract để định nghĩa lớp phương thức trừu tượng abstract public class SinhVien{ abstract public double getDiemTB(); } abstract public class Hinh{ abstract public double getChuVi(); abstract public double getDienTich(); } ĐỊNH NGHĨA LỚP TRỪU TƯỢNG abstract public class SinhVien{ public String hoTen; abstract public double getDiemTB(); } public class SinhVienIT extends SinhVien{ public double diemJava; public double diemCss; @Override public double getDiemTB(){ return (2 * diemJava + diemCss)/3; } } public class SinhVienBiz extends SinhVien { public double keToan; public double marketting; public double banHang; @Override public double getDiemTB(){ return (keToan + marketting + banHang)/3; } } ĐỊNH NGHĨA LỚP TRỪU TƯỢNG Từ khóa abstract sử dụng để định nghĩa lớp phương thức trừu tượng Phương thức trừu tượng phương thức khơng có phần thân xử lý khai báo từ khóa abstract Lớp chứa phương thức trừu tượng lớp phải lớp trừu tượng Trong lớp trừu tượng định nghĩa phương thức cụ thể trường DEMO Hiện thực hóa mơ hình thừa kế slide trước Hình TÍNH ĐA HÌNH (POLYMORPHISM) Overriding thực tính đa hình lập trình hướng đối tượng (một hành vi thể với hình thái khác nhau) Gọi phương thức bị ghi đè định lúc chạy chương trình (runtime) khơng phải lúc biên dịch chương trình (compile time) TÍNH ĐA HÌNH (POLYMORPHISM) public class Cho extends DongVat{ public void speak(){ System.out.println(“Woof”); } } abstract public class DongVat{ abstract public void speak(); } DongVat cho = new Cho(); DongVat meo= new Meo(); DongVat vit = new Vit(); cho.speak(); meo.speak(); vit.speak(); public class Meo extends DongVat{ public void speak(){ System.out.println(“Meo”); } } public class Vit extends DongVat{ public void speak(){ System.out.println(“Quack”); } } INTERFACE  Trong interface có method abstract biến final  Khi class thực thi interface, phải viết lại (override) tất method interface  Interface public default  Interface kế thừa  Một interface thực nhiều class, class thực thi nhiều interface Đó cách để dùng “kế thừa từ nhiều class” KHAI BÁO INTERFACE package mypackage; interface MyInterface{ void myMethod1(); void myMethod2(); } THỰC THI INTERFACE package mypackage; public class MyClass implements MyInterface{ public void myMethod1(){ //phải public System.out.println(“Override my method 1"); } public void myMethod2(){ System.out.println(“Override my method 2"); } // method rieng class void mymethod3(){ System.out.println("My method 3"); } } SỬ DỤNG INTERFACE public static void main (String a[]){ MyClass myObject1 = new MyClass(); obj1.mymethod1(); obj1.mymethod2(); obj1.mymethod3(); MyInterface myObject2 = new MyClass(); obj2.mymethod1(); obj2.mymethod2(); obj2.mymethod3();// error; } } THỰC THI NHIỀU INTERFACE public interface MyInter1{ void meth1(); void meth2(); } public interface MyInter2{ void meth3(); } public class MyClass implements MyInter1, public void meth1(){ System.out.println("Implements } public void meth2(){ System.out.println("Implements } public void meth3(){ System.out.println("Implements } } MyInter2 { method 1"); method 2"); method 3"); KẾ THỪA INTERFACE public interface MyInter1{ void meth1(); } public interface MyInter2{ void meth2(); } public interface MyInter3 extends MyInter1, MyInter2{ void meth3(); } public class MyClass implements MyInter3 { public void meth1(){ System.out.println("Implements method 1"); } public void meth2(){ System.out.println("Implements method 2"); } public void meth3(){ System.out.println("Implements method 3"); } } TỔNG KẾT NỘI DUNG BÀI HỌC Thừa kế Gọi hàm tạo lớp cha Sử dụng super Ghi đè phương thức Lớp phương thức trừu tượng ... SinhVienBiz extends SinhVien { public double keToan; public double marketting; public double banHang; @Override public double getDiemTB(){ return (keToan + marketting + banHang)/3; } } ĐỊNH NGHĨA LỚP... kế) VÍ DỤ PHÂN CẤP THỪA KẾ class Bicycle{…} class MountainBike extends Bicycle{…} class RoadBike extends Bicycle{…} class TandemBike extends Bicycle{…} Hình Hình đa giác Hình tròn Hình chữ nhật

Ngày đăng: 27/10/2019, 22:25

Xem thêm:

TỪ KHÓA LIÊN QUAN

w