Java语言中的----抽象类接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言中的----抽象类接口相关的知识,希望对你有一定的参考价值。
day12 Java语言中的抽象类与接口
一、抽象类和接口概述;
在昨天我们学习了Java的继承功能,这个是一个核心知识点,今天我们再继承的基础之上学习一下抽象类和接口这两个知识。什么是抽象类?如何定义一个抽象类?如何使用一个抽象类?这些都是我们需要掌握的。
同时我们还要知道如何来定义一个接口,在开发中定义接口来实现相关的功能是一个很重要的功能。如何来实现接口中的抽象方法,这些在这一节都会说到。
二、抽象类和接口
1、抽象类:
什么是抽象类?包含抽象方法的类就叫做抽象类 。使用abstract关键字修饰的类。
抽象类的意义?抽象类存在意义就是被继承,是定义的一个模板、由子类实现它的抽象方法。
抽象类可以包含成员变量、方法、构造器、初始化块内部类等。
注意:同时抽象类是不能够被实例化的。
如果是使用的final关键字不能够和abstract关键字同时出现。
final关键字修饰的类不能够被继承,final关键字修饰的方法不能够被重写,final关键字不能和abstract关键字同时使用。
2、抽象方法:
抽象方法就是在一个类里面使用abstract关键字修饰的方法就称为是抽象方法。
注意:抽象方法是没有方法体的,需要子类继承实现这个抽象方法。
3、实例一:
package www.com.c3; //抽象类abstract class //定义动物类 abstract class Animal{ String color; int leg; //抽象方法,没有具体的方法体来实现它 public abstract void eat(); } //方法一、将继承的子类也定义为一个抽象类。 //方法二、在普通子类继承父类以后,子类里面实现父类中的具体的抽象方法。 class Dog extends Animal{ //这就是实现父类中的抽象方法。我们需要实现它 @Override public void eat() { System.out.println("狗是要吃食物的!"); } } //主类 public class abstract01 { public static void main(String[] args) { Dog dog = new Dog(); dog.eat(); } }
4、接口(interface):
接口是个什么东西?感觉好陌生一样,实则不然,你想一想,做开发我们分为前端开发和后台开发两个主体,两个主题之间就是通过一些接口实现产品的功能。前端或后台定义好一个接口以后你就可以直接通过接口实现功能。这样节省了大量的研发时间。所以说,接口是一个好东西。
5、接口:就是一个完全抽象出来的类。二这个类里面定义的全部是抽象方法,都是public abstract关键字开头的。
6、在接口中也可以定义一些变量,但是这些变量全部都要初始化以后才能够使用。而且全部都是“public satatic final”关键字修饰开头的
7、在接口中是不能够含有“构造函数”的。
8、实例二
package www.com.c3; //定义接口: interface Studets{ //定义变量,并初始化 String name = "zs"; //定义方法 public abstract void student(); } //注意:类和类之间:是继承关系, // 类和接口之间:是实现关系。通过implements关键字实现。 //同时需要实现接口中的抽象方法。 //子类实现父类中的抽象方法 class Am implements Studets{ @Override public void student() { System.out.println("姓名:"+name); } } //主类 public class Interface01 { public static void main(String[] args) { //接口是不能够被实例化的 //Studets st = new Studets(); Am a = new Am(); a.student(); } }
三、接口与抽象类在用法上的区别:
1、接口里面只能包含抽象方法、静态方法和默认方法,不能够为普通方法提供方法实现;
抽象类里面完全可以包含普通方法。
2、接口里面只能定义静态常量,不能定义普通成员变量;
抽象类里面既可以定义普通成员变量,也可以定义静态常量。
3、接口里面不包含构造器;
抽象类里面可以包含构造器,在抽象类里面的构造器并不是用于创建对象,而是让其子类调用这些构造器来完成属于抽象类的初始化操作。
4、接口里面不能包括初始化块;
抽象类则完全可以包含初始化块。
5、一个类最多只能有一个直接父类,包括抽象类;
但是一个类可以直接实现多个接口,通过狮子按多个解救可以弥补Java单继承的不足之处。
四、结束语:
到这里我们就捣鼓完了,没有关系,如果不懂我后续看看有视频资源分享一点给大家。
本文出自 “程序猿” 博客,转载请与作者联系!
以上是关于Java语言中的----抽象类接口的主要内容,如果未能解决你的问题,请参考以下文章