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

接口和抽象

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

接口和抽象

抽象方法:
如果一个方法,不需要实现体(函数内容),就可以声明抽象方法
抽象方法:没有方法体的方法。java中使用abstract关键字声明的方法就是抽象方法。

访问修饰符 abstract 返回值类型 方法名称(参数列表);
抽象方法必须定义在抽象类中。

注意:抽象类中不一定有抽象方法!
如果一个类继承了抽象类,就必须实现该类的抽象方法!
如果一定不实现,则将这个子类继续声明抽象类。

抽象类:
被abstract关键字修饰的类。

细节问题

1、抽象类一定是个父类?
是的,因为不断抽取而来的。
2、抽象类是否有构造函数?
有,虽然不能给自己的对象初始化,但是可以给自己的子类对象初始化。
抽象类和一般类的异同点:
相同:

  • 它们都是用来描述事物的。
  • 它们之中都可以定义属性和行为。

不同:

  • 一般类可以具体的描述事物。抽象类描述事物的信息不具体
  • 抽象类中可以多定义一个成员:抽象函数。
  • 一般类可以创建对象,而抽象类不能创建对象。

3、抽象类中是否可以不定义抽象方法?
是可以的,那这个抽象类的存在到底有什么意义呢?仅仅是不让该类创建对象。
4、抽象关键字abstract不可以和哪些关键字共存?

  1. final:fianl修饰的类是无法被继承的,而abstract修饰的类一定要有子类.final修饰的方法无法被覆盖,但是abstract修饰的方法必须要被子类去实现的。
  2. static:静态修饰的方法属于类的,它存在与静态区中,和对象就没关系了。而抽象方法没有 方法体,使用类名调用它没有任何意义。
  3. private:私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾

接口:
接口,本质是特殊的类,特殊抽象类
接口中所有方法都是没有实现的(抽象方法)。

在jdk8之前:
接口中的所有属性和方法,默认都是public的!即便是你没有使用public关键字修饰。

java中使用interface关键字来定义接口
java中,接口可以多实现。

接口的实现使用implements关键字实现接口
子类一旦实现了接口,必须要实现接口所有的抽象方法,如果不想实现,则必须将该子类声明为抽象类。

接口也无法直接实例化,必须使用子类,以多态的形式完成实例化。

注意:接口可以多实现!

  • 类继承类同时实现接口
class Fu{
	public void show(){
	}
}
interface Inter{
	public void show1();
}
class Zi extends Fu implements Inter{
	public void show1(){
	}
}
  • 接口多继承
interface A{
	void show();
}
interface B{
	void show1();
}
interface C{
	void show2();
}
interface D extends A,B,C{
	void show3();
}
  • 没有抽象方法的抽象类的由来
interface Inter{
	void show();
	void show1();
	void show2();
	oid show3();
}
abstract class AbsInter implements Inter{
	public void show(){}
	public void show1(){}
	public void show2(){}
	public void show3(){}
}

jdk8的接口新特性:
允许接口存在默认方法和静态方法,非抽象方法

接口与抽象类的区别
相同点:

  • 都位于继承的顶端,用于被其他实现或继承;
  • 都不能实例化;
  • 都包含抽象方法,其子类都必须覆写这些抽象方法;

区别:

  • 抽象类为部分方法提供实现,避免子类重复实现这些方法,提供代码重用性;接口只能包含抽象方法;
  • 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

二者的选用:

  • 优先选用接口,尽量少用抽象类;
  • 需要定义子类的行为,又要为子类提供共性功能时才选用抽象类
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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