diff --git a/src/main/java/com/google/android/libraries/feed/piet/ui/BitmapMaskingRoundedCornerDelegate.java b/src/main/java/com/google/android/libraries/feed/piet/ui/BitmapMaskingRoundedCornerDelegate.java
index e93e1bc..b2912c9 100644
--- a/src/main/java/com/google/android/libraries/feed/piet/ui/BitmapMaskingRoundedCornerDelegate.java
+++ b/src/main/java/com/google/android/libraries/feed/piet/ui/BitmapMaskingRoundedCornerDelegate.java
@@ -33,7 +33,7 @@
  * RoundedCornerWrapperView} decides which rounding strategy to use and sets the appropriate
  * delegate.
  */
-class BitmapMaskingRoundedCornerDelegate implements RoundedCornerDelegate {
+class BitmapMaskingRoundedCornerDelegate extends RoundedCornerDelegate {
   private final Paint paint;
   private final Paint maskPaint;
   private final RoundedCornerMaskCache maskCache;
diff --git a/src/main/java/com/google/android/libraries/feed/piet/ui/ClipPathRoundedCornerDelegate.java b/src/main/java/com/google/android/libraries/feed/piet/ui/ClipPathRoundedCornerDelegate.java
index 24dc7be..ec6a168 100644
--- a/src/main/java/com/google/android/libraries/feed/piet/ui/ClipPathRoundedCornerDelegate.java
+++ b/src/main/java/com/google/android/libraries/feed/piet/ui/ClipPathRoundedCornerDelegate.java
@@ -27,7 +27,7 @@
  * RoundedCornerWrapperView} decides which rounding strategy to use and sets the appropriate
  * delegate.
  */
-class ClipPathRoundedCornerDelegate implements RoundedCornerDelegate {
+class ClipPathRoundedCornerDelegate extends RoundedCornerDelegate {
 
   private final Path clipPath = new Path();
 
diff --git a/src/main/java/com/google/android/libraries/feed/piet/ui/OutlineProviderRoundedCornerDelegate.java b/src/main/java/com/google/android/libraries/feed/piet/ui/OutlineProviderRoundedCornerDelegate.java
index bd10160..b7d580e 100644
--- a/src/main/java/com/google/android/libraries/feed/piet/ui/OutlineProviderRoundedCornerDelegate.java
+++ b/src/main/java/com/google/android/libraries/feed/piet/ui/OutlineProviderRoundedCornerDelegate.java
@@ -22,7 +22,7 @@
  * <p>Adds logic to clip rounded corner views to their outline. {@link RoundedCornerWrapperView}
  * decides which rounding strategy to use and sets the appropriate delegate.
  */
-class OutlineProviderRoundedCornerDelegate implements RoundedCornerDelegate {
+class OutlineProviderRoundedCornerDelegate extends RoundedCornerDelegate {
 
   /**
    * Sets clipToOutline to true.
diff --git a/src/main/java/com/google/android/libraries/feed/piet/ui/RoundedCornerDelegate.java b/src/main/java/com/google/android/libraries/feed/piet/ui/RoundedCornerDelegate.java
index 39a2998..688b2c5 100644
--- a/src/main/java/com/google/android/libraries/feed/piet/ui/RoundedCornerDelegate.java
+++ b/src/main/java/com/google/android/libraries/feed/piet/ui/RoundedCornerDelegate.java
@@ -35,35 +35,35 @@
  * RoundedCornerWrapperView}, because that view doesn't need to know which strategies require extra
  * logic in specific methods.
  */
-interface RoundedCornerDelegate {
+abstract class RoundedCornerDelegate {
 
   /**
    * Initializes anything that needs to be changed on the view that is being rounded.
    *
    * <p>This should be the opposite of what is torn down in destroy().
    */
-  default void initializeForView(ViewGroup view) {}
+  void initializeForView(ViewGroup view) {}
 
   /** Allows a rounded corner delegate to add logic when child views are drawn. */
-  default void dispatchDraw(Canvas canvas) {}
+  void dispatchDraw(Canvas canvas) {}
 
   /** Allows a rounded corner delegate to add logic during layout. */
-  default void onLayout(int radius, boolean isRtL, int width, int height) {}
+  void onLayout(int radius, boolean isRtL, int width, int height) {}
 
   /**
    * Allows a rounded corner delegate to add logic during {@link
    * ViewParent#onDescendantInvalidated}.
    */
-  default void onDescendantInvalidated(View roundedCornerView, View invalidatedDescendant) {}
+  void onDescendantInvalidated(View roundedCornerView, View invalidatedDescendant) {}
 
   /**
    * Allows a rounded corner delegate to add logic during {@link
    * ViewParent#invalidateChildInParent}.
    */
-  default void invalidateChildInParent(View view, final Rect dirty) {}
+  void invalidateChildInParent(View view, final Rect dirty) {}
 
   /** Allows a rounded corner delegate to add logic when the size changes. */
-  default void onSizeChanged(int radius, int width, int height, int bitmask, boolean isRtL) {}
+  void onSizeChanged(int radius, int width, int height, int bitmask, boolean isRtL) {}
 
   /**
    * Renders the view to this canvas.
@@ -75,7 +75,7 @@
    * <p>If this is overridden, view.drawSuper() must be called, even if it is with a different
    * {@link Canvas}.
    */
-  default void draw(RoundedCornerWrapperView view, Canvas canvas) {
+  void draw(RoundedCornerWrapperView view, Canvas canvas) {
     view.drawSuper(canvas);
   }
 
@@ -85,5 +85,5 @@
    * <p>This should be called on the current {@link RoundedCornerDelegate} when switching from one
    * delegate to another.
    */
-  default void destroy(ViewGroup view) {}
+  void destroy(ViewGroup view) {}
 }
