Diyelim ki çok farklı türden araçlar yapacaksınız: aile
arabaları, spor arabaları, F1 arabaları ...
Tüm bunlar için, accelerate() yöntemi çok farklı bir uygulamaya
sahip olacaktır. Diyelim ki Araba'yı soyut bir sınıf yapmaz ve
hızlanmanın uygulanmasını sağlar.
Birisi bir F1 arabası yapacak olsaydı, şunu düşünebilirdi: Zaten
hızlanacak bir işleve sahibiz, kullanmamak için hiçbir neden yok.
Sonunda, tüm araba türleriyle aynı şekilde hızlandırabiliriz.
Bu, ya çok yavaş F1 yarışlarına ya da Flash'ın bile bir yaya
olmasını istemediği temel trafiğe yol açacaktı.
Soyut sınıf, 'ne' yapılması gerektiğini, 'nasıl' yapılması
gerektiğini söylememek, aynı zamanda arabirimlerden farklı olarak
soyut olmayan yöntemler ekleme olanağına da sahiptir.