Inheritance and interface in Java are two different code organization methods, which are used to create hierarchies between classes and implement code reuse. Inheritance creates subclasses by copying the properties and methods of the parent class, while the interface defines a set of method signatures, which are implemented specifically by the implementation class. This article will explain the key differences between the two and illustrate them with Java code examples.
The following code demonstrates the application of interface and inheritance:
C.add(5, 10); C.subtract(35, 15); C.multiply(6, 9); C.divide(45, 6);
Output result:
<code>The result is here. Have A Look : 15.0 The result is here. Have A Look : 20.0 The result is here. Have A Look : 54.0 The result is here. Have A Look : 7.5</code>
特性 | 继承 | 接口 |
---|---|---|
定义 | 基类将行为传递给子类。 | 接口定义了所有声明方法的关系。 |
代码复用 | 通过重写方法复用超类代码。 | 通过多态性提高代码可重用性。 |
多继承支持 | 单继承(一个类只能继承一个父类),但可以有多个子类。 | 支持多继承,无需指定实现细节。 |
Inheritance allows a class to inherit the features of the parent class and the ancestor class. And the interface defines the contract between abstraction and method set.
This article uses sample code to demonstrate how to use collections and iterators to process data and implement calculator functions through interfaces and inheritance. The main steps of the algorithm are as follows:
The following code shows the use of TreeSet, IdentityHashMap, and Hashtable, as well as the application of iterators when traversing the collection, to illustrate how inheritance and interface work.
TreeSet STTREE = new TreeSet(); STTREE.add(4); STTREE.add(5); STTREE.add(6); STTREE.add(8); STTREE.add(4); IdentityHashMap ihmap = new IdentityHashMap(); ihmap.put(10, "ARB"); ihmap.put(20, "RDD"); ihmap.put(30, "ARBRDD"); ihmap.put(40, "KOLDHKA"); ihmap.put(50, "You"); System.out.println("IdentityHashMap size : " + ihmap.size()); System.out.println("Initial identity hash map : " + ihmap); Hashtable table = new Hashtable(); table.put(1, "X"); table.put(2, "Y"); table.put(3, "Z"); table.put(4, "A"); for (Map.Entry m : table.entrySet()) { Iterator<Map.Entry> itr = ihmap.entrySet().iterator(); while (itr.hasNext()) { IdentityHashMap.Entry entry = itr.next(); TreeMap MAPTREE = new TreeMap(); MAPTREE.put(2, 5); MAPTREE.put(3, 6); MAPTREE.put(4, 6); MAPTREE.put(2, 3); } }
The diamond problem is a possible problem in multiple inheritance. This article avoids this problem through the implementation of interfaces. Multiple inheritance of interfaces avoids the limitation of single inheritance and improves code flexibility and scalability.
The following code demonstrates the implementation of the calculator using interfaces and implementation classes:
import java.util.*; interface ARBRDD { public void add(double x, double y); public void subtract(double x, double y); } interface Mul_Div { public void multiply(double x, double y); public void divide(double x, double y); } interface Calculator extends ARBRDD, Mul_Div { public void printResult(double result); } public class MyCalculator implements Calculator { // ... 方法实现 ... }
This article clearly explains the differences between inheritance and interfaces in Java through sample code and tables, and demonstrates how to use them to build flexible and extensible programs through practical cases. Understanding the difference between inheritance and interface is essential for writing high-quality Java code.
The above is the detailed content of Difference between Inheritance and Interface in Java. For more information, please follow other related articles on the PHP Chinese website!