Trong ngôn ngữ lập trình, kiểu trừu tượng (tiếng Anh: abstract type) là một kiểu trong hệ thống kiểu danh định mà không thể được khởi tạo trực tiếp; một kiểu mà không trừu tượng – nghĩa là có thể được khởi tạo – được gọi là kiểu cụ thể (concrete type). Mỗi thực thể của kiểu trừu tượng là một thực thể của vài kiểu con cụ thể. Kiểu trừu tượng còn được gọi là kiểu tồn tại (existential type).[1]
Một kiểu trừu tượng có thể không cung cấp sự hiện thực, hoặc hiện thực không đầy đủ. Ở một vài ngôn ngữ, kiểu trừu tượng không có sự hiện thực (thay vì hiện thực không đầy đủ) được gọi là giao thức (protocol hay interface), chữ kí (signature), hay kiểu lớp (class type). Trong lập trình hướng đối tượng dựa trên lớp, kiểu trừu tượng được hiện thực như là lớp trừu tượng (abstract class hay abstract base class), và kiểu cụ thể như là lớp cụ thể (concrete class).
Lớp trừu tượng có thể được tạo ra, định nghĩa, hay mô phỏng, theo nhiều cách:
- [NSObject doesNotRecognizeSelector:(SEL)selector]
được gọi khi phát hiện phương thức chưa được hiện thực).//By default, all methods in all classes are concrete, unless the abstract keyword is used.
abstract class Demo {
// An abstract class may include abstract methods, which have no implementation.
abstract public int sum(int x, int y);
// An abstract class may also include concrete methods.
public int product(int x, int y) { return x*y; }
}
//By default, all methods in all interfaces are abstract, unless the default keyword is used.
interface DemoInterface {
[abstract] int getLength(); //Abstract can be used here, though is completely useless
//The default keyword can be used in this context to specify a concrete method in an interface
default int product(int x, int y) {
return x * y;
}
}