Learn more about the difference between Java interfaces and abstract classes
Ask the canal how clear it is so that there is a source of running water --Zhu Xi
Interface, interface, interface generally refers to methods and methods for others to call
function. Form of interface: public interface interfaceName
{
public static final 变量;
void FunctionName(args);
}
Features of interface:
Interface can contain variables and methods.
#2), where the variable is implicitly designated as a public static final variable and can only be such a variable.
#4). The methods in the interface cannot have specific implementations. They are all abstract methods. The interface is an extremely abstract type.
5). A class can implement multiple interfaces and can only
inherit one abstract class.
#6), interface methods must be implemented in subclasses.
Simple example:
//声明一个接口 interface Say { public void sayMessage(); } //两个实现类 class SayHello implements Say { public void sayMessage() { System.out.println("hello"); } } class SayHi implements Say { public void sayMessage() { System.out.println("Hi"); } } public class TestSay { public static void main(String[] args) { //同样都是用Say这个接口类型实例,却可以输出两个结果 Say say = new SayHello(); say.sayMessage(); Say say1 = new SayHi(); say1.sayMessage(); } }###Abstract class:#########The general definition of an abstract class is a class that contains abstract methods. Of course, just use abstract to describe the class. Modification, if there is no abstract method, it is also an abstract class, but that doesn't make much sense. ######Form of abstract class:###
public abstract abstractName { abstract void function(); 其他的正常类发方法与变量; }######Characteristics of abstract class###:#########1), abstract class not only contains abstract methods, but also Like ordinary classes, they have variables and ordinary methods. ############2), abstract methods can only be public or protected, because abstract classes are intended to be inherited, and private methods are meaningless. ############3), abstract class cannot be used to ###create objects###, it is used to be inherited. ############4). A subclass that inherits an abstract class must implement the abstract method of the abstract class, otherwise the subclass is also an abstract class. ###############
抽象类示例:
public class Child extends Children{ public Child(String name) { super(name); } public void printName() { System.out.println(super.getName()); } public static void main(String[] args) { Child boy = new Child("Charley"); System.out.println(boy.getName()); Child girl = new Child("Queenie"); girl.printName(); } } abstract class Children { private String name; public Children(String name) { this.name = name; } public String getName() { return name; } abstract void printName(); }
(1)抽象类可以有构造方法,接口内不能有构造方法
(2)抽象类中可以有普通成员变量,接口中的变量都是public static final修饰的
(3)抽象类中可以包含非抽象的普通方法,接口中的方法默认是抽象方法
(4)抽象类中的抽象方法可以是public,protected、默认类型,接口中的抽象方法是public,默认是public abstract类型
(5)抽象类中可以有静态方法,接口中不包含静态方法
(6)抽象类和接口中都可以有静态成员变量,抽象类中的静态成员变量可以是任意访问类型的,接口中的静态成员变量只能是public static
(7)一个类可以实现多个接口,但只能继承一个抽象类
The above is the detailed content of Learn more about the difference between Java interfaces and abstract classes. For more information, please follow other related articles on the PHP Chinese website!

Bytecodeachievesplatformindependencebybeingexecutedbyavirtualmachine(VM),allowingcodetorunonanyplatformwiththeappropriateVM.Forexample,JavabytecodecanrunonanydevicewithaJVM,enabling"writeonce,runanywhere"functionality.Whilebytecodeoffersenh

Java cannot achieve 100% platform independence, but its platform independence is implemented through JVM and bytecode to ensure that the code runs on different platforms. Specific implementations include: 1. Compilation into bytecode; 2. Interpretation and execution of JVM; 3. Consistency of the standard library. However, JVM implementation differences, operating system and hardware differences, and compatibility of third-party libraries may affect its platform independence.

Java realizes platform independence through "write once, run everywhere" and improves code maintainability: 1. High code reuse and reduces duplicate development; 2. Low maintenance cost, only one modification is required; 3. High team collaboration efficiency is high, convenient for knowledge sharing.

The main challenges facing creating a JVM on a new platform include hardware compatibility, operating system compatibility, and performance optimization. 1. Hardware compatibility: It is necessary to ensure that the JVM can correctly use the processor instruction set of the new platform, such as RISC-V. 2. Operating system compatibility: The JVM needs to correctly call the system API of the new platform, such as Linux. 3. Performance optimization: Performance testing and tuning are required, and the garbage collection strategy is adjusted to adapt to the memory characteristics of the new platform.

JavaFXeffectivelyaddressesplatforminconsistenciesinGUIdevelopmentbyusingaplatform-agnosticscenegraphandCSSstyling.1)Itabstractsplatformspecificsthroughascenegraph,ensuringconsistentrenderingacrossWindows,macOS,andLinux.2)CSSstylingallowsforfine-tunin

JVM works by converting Java code into machine code and managing resources. 1) Class loading: Load the .class file into memory. 2) Runtime data area: manage memory area. 3) Execution engine: interpret or compile execution bytecode. 4) Local method interface: interact with the operating system through JNI.

JVM enables Java to run across platforms. 1) JVM loads, validates and executes bytecode. 2) JVM's work includes class loading, bytecode verification, interpretation execution and memory management. 3) JVM supports advanced features such as dynamic class loading and reflection.

Java applications can run on different operating systems through the following steps: 1) Use File or Paths class to process file paths; 2) Set and obtain environment variables through System.getenv(); 3) Use Maven or Gradle to manage dependencies and test. Java's cross-platform capabilities rely on the JVM's abstraction layer, but still require manual handling of certain operating system-specific features.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
