Trong lập trình máy tính, hàm tổng quát (tiếng Anh: generic function) là một hàm được định nghĩa cho các kiểu đa hình.
Trong ngôn ngữ kiểu tĩnh (như C++ và Java), thuật ngữ hàm tổng quát dùng để chỉ một cơ chế cho đa hình trong thời gian biên dịch (compile-time polymorphism) tức điều phối tĩnh (static dispatch), đặc biệt là đa hình tham số (parametric polymorphism). Đó là những hàm được định nghĩa bằng TypeParameter, với dự định sẽ được giải quyết với thông tin kiểu vào thời gian biên dịch (compile time). Trình biên dịch sử dụng các kiểu này để khởi tạo các phiên bản phù hợp, và giải quyết bất kì chồng hàm (function overloading) một cách thích hợp.
Trong các hệ thống lập trình hướng đối tượng như Common Lisp Object System (CLOS)[1] and Dylan, hàm tổng quát là một thực thể tạo thành từ các phương thức có cùng tên.