接口与普通的类主要区别是,接口只能有行为声明而不能有真正的实现体,这正是不能实例化接口让其完成相关功能的关键所在。而抽象类与普通类表面上区别是其声明部分有无关键字abstract,如下所示。
//该类为普通类
public class A {
...
}
//该类为抽象类
public abstract class B {
....
}
从形式上看抽象类很向接口,但是抽象类与接口既有相同点也有不同点,其相同点为:
接口不能被实例化,抽象类也不能被实例化
public abstract class A {
....
}
public interface MyInterface {
...
}
....
接口中与抽象类都不可以独立运行,也就是说它们都不能作为应用的类。
接口可以有属性,抽象类也可以有属性
接口与抽象类的不同点为:
接口中的所有属性与方法的声明都必须是public 类型的,除abstract方法外,抽象类的属性与方法既可以是public 类型有可以是private类型或protected类型的,abstract方法只能是public或者protected类型。
....
//该类为普通类
public class A {
...
}
//该类为抽象类
public abstract class B {
....
}
从形式上看抽象类很向接口,但是抽象类与接口既有相同点也有不同点,其相同点为:
接口不能被实例化,抽象类也不能被实例化
public abstract class A {
....
}
public interface MyInterface {
...
}
....
接口中与抽象类都不可以独立运行,也就是说它们都不能作为应用的类。
接口可以有属性,抽象类也可以有属性
接口与抽象类的不同点为:
接口中的所有属性与方法的声明都必须是public 类型的,除abstract方法外,抽象类的属性与方法既可以是public 类型有可以是private类型或protected类型的,abstract方法只能是public或者protected类型。
....