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语言中的----抽象类接口的主要内容,如果未能解决你的问题,请参考以下文章

接口类 和 抽象类

第6篇 Java中的接口与抽象类

接口与抽象类 多态

Java语言简介基础组成封装继承多态抽象类内部类接口

Java语言简介基础组成封装继承多态抽象类内部类接口

java中的接口