栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java抽象类与接口的异同

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java抽象类与接口的异同

抽象类(abstract)

指在普通类的结构里面增加抽象方法的组成部分;即一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的的类称为抽象类。抽象类要使用abstract关键字声明。

实例:

public abstract class Action{
	public abstract void doing();//抽象类型方法,无方法体
	public void test(){
	};//普通方法
}

class son extends Acticon{
	@Override
	public void doing(){
		System.out.println("doing");
	}
}

使用限制:

1. 由于抽象类里会存在一些属性,那么抽象类中一定存在构造方法,其存在目的是为了属性的初始化。并且子类对象实例化的时候,满足先执行父类构造,之后再执行子类构造的顺序。

2.抽象类不可以用final声明,因为final定义的类不能又子类,而抽象类必须有子类。

3.外部抽象类不允许使用static声明,而内部的抽象类运行使用static声明。使用static声明的内部抽象类相当于一个外部抽象类,继承的时候使用“外部类.内部类”的形式表示类名称。

4.抽象类不能使用new操作符来初始化。但仍然可以定义它的构造方法,其构造方法在它的子类的构造方法中调用。

4.所有的子类如果要想正常的完成操作,必须按照指定的方法进行覆写才可以,而这个时候抽象类所起的功能就是一个类定义模板的功能。

接口(interface)

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口被看着一种特殊的类,每个接口都被编译为独立的字节码文件。

与抽象类相似,可以使用接口作为引用变量数据类型或类型转换的结果;不能使用new操作符创建接口实例。一个接口就是描述一种能力。接口的作用就是告诉类其要实现接口代表的功能。

实例:

public interface UserDao{
	public static final int age=33;
    public abstract void doing();

    public abstract int insert(A a);
}

public class UserTest implements UserDao{
	public void doing(){
		System.out.println("doing");
	}
	public void insert(A a){
		System.out.println("xingzheng");
	}
}

使用限制:

1.接口中所有定义的方法中其实都是抽象的public abstract

2.变量只能为public static final类型的

抽象与接口的区别:

1. 抽象类要被子类继承,接口要被子类实现;

2. 抽象类中可为普通变量,而接口中变量全部为公共静态变量

3. 抽象类中可以有方法的实现(但不可以实例化),接口中全部为方法的声明,

4. 抽象类中可以有构造函数,接口中不可以有构造函数,

5. 抽象类必须被单继承,而接口可以多实现(一个类可以实现不止一个接口)

6. 抽象类可以有非抽象方法,而接口中方法全部为抽象方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号