diff --git a/src/cryptography/hazmat/primitives/asymmetric/ec.py b/src/cryptography/hazmat/primitives/asymmetric/ec.py
index 202f1c9..c912424 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/ec.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/ec.py
@@ -152,10 +152,7 @@
         self._curve = curve
 
     def public_key(self, backend):
-        try:
-            return backend.load_elliptic_curve_public_numbers(self)
-        except AttributeError:
-            return backend.elliptic_curve_public_key_from_numbers(self)
+        return backend.load_elliptic_curve_public_numbers(self)
 
     curve = utils.read_only_property("_curve")
     x = utils.read_only_property("_x")
@@ -191,10 +188,7 @@
         self._public_numbers = public_numbers
 
     def private_key(self, backend):
-        try:
-            return backend.load_elliptic_curve_private_numbers(self)
-        except AttributeError:
-            return backend.elliptic_curve_private_key_from_numbers(self)
+        return backend.load_elliptic_curve_private_numbers(self)
 
     private_value = utils.read_only_property("_private_value")
     public_numbers = utils.read_only_property("_public_numbers")
diff --git a/tests/hazmat/primitives/test_ec.py b/tests/hazmat/primitives/test_ec.py
index 84c447c..fd7f7ec 100644
--- a/tests/hazmat/primitives/test_ec.py
+++ b/tests/hazmat/primitives/test_ec.py
@@ -63,14 +63,6 @@
     algorithm = None
 
 
-class DeprecatedDummyECBackend(object):
-    def elliptic_curve_private_key_from_numbers(self, numbers):
-        return b"private_key"
-
-    def elliptic_curve_public_key_from_numbers(self, numbers):
-        return b"public_key"
-
-
 @pytest.mark.requires_backend_interface(interface=EllipticCurveBackend)
 def test_skip_curve_unsupported(backend):
     with pytest.raises(pytest.skip.Exception):
@@ -350,17 +342,6 @@
         else:
             verifier.verify()
 
-    def test_deprecated_public_private_key_load(self):
-        b = DeprecatedDummyECBackend()
-        pub_numbers = ec.EllipticCurvePublicNumbers(
-            2,
-            3,
-            ec.SECT283K1()
-        )
-        numbers = ec.EllipticCurvePrivateNumbers(1, pub_numbers)
-        assert numbers.private_key(b) == b"private_key"
-        assert pub_numbers.public_key(b) == b"public_key"
-
 
 class TestECNumbersEquality(object):
     def test_public_numbers_eq(self):
