علاوه بر سه مفهوم مهم شی گرایی یعنی وراثت، چند ریختی و کپسوله سازی مفهوم مهم دیگری به نام Abstraction به معنای تجرید وجود دارد. 

Abstraction در واقع به معنای نگرش کلی به مفاهیم به دور از جزییات است. در واقع ما باید مفاهیم کلی را در نظر بگیریم و برای ارث بری از آن استفاده کنیم.

برای مثال خودرو یک مفهوم بسیار کلی ست. زمانی که کلمه خودرو استفاده می شود در ذهن یک نفر ممکن است تصویری از یک پراید بوجود بیاید و در ذهن شخص دیگر مثلا یک اتوبوس اسکانیا 4214 که هر دوی آنها نمونه هایی هستند از  فرزندان خودرو. پس به طور کلی خودرو یک مفهوم انتزاعی است که قابل نمونه سازی نیست اما می تواند پدر کلاس هایی باشد مانند سواری، اتوبوس و ... که از آنها می توان نمونه هایی مانند پراید، اتوبوس اسکانیا 4214 و ... ساخت.

  

abstarction

  

پس برای کد کردن مثال زیر ما یک کلاس Abstract به نام Automobile می سازیم که همانطور که می دانید قابل نمونه سازی نیست و به عنوان پدر کلاس هایی مثل Bus، Car و ... استفاده می شود.

public abstract class Automobile {

protected String type;
protected int numberOfDoor;
.
.
.

protected abstract void Drive();
...
}

حالا برای مثال از این کلاس برای ارث بری استفاده می کنیم:

public class Car extends Automobile {


@Override
protected void Drive() {

}

public Car()
{

}
}

همانطور که دیده می شود متد Drive از کلاس پدر Override شده است و اینکار اجباریست چون Drive در کلاس پدر بدنه ندارد. 

در مرحله آخر شی pride را می سازیم و از آن استفاده می کنیم:

public class Main {
public static void main(String[] args) {
Car pride= new Car();
}
}