Java—语法篇7(抽象类与接口)

目录

一.接口

1.生活中的接口

2.interface关键字和implements关键字

>1.interface关键字

>2.implements关键字

3.接口的组成成员由四个部分组成

4.接口的相关定义

 二.抽象类

1.抽象方法

2.抽象类

三.抽象类与接口的相同与不同

1.相同

2.不同


一.接口

1.生活中的接口

生活中的接口都是给定规范,其他厂商需要遵守这个规范来生产产品。例如上图所示的USB接口,各种产品所生产出来的商品都遵循着USB的形状来生产。

同理java中的接口也是这个作用,接口去定义方法的功能交给类来实现,接口与抽象类相似,都是抽象的思想,但是比抽象类更加简洁,在接口中没有抽象类那么多信息

2.interface关键字和implements关键字

>1.interface关键字

interface关键字是用来修饰接口的关键字,其语法格式如下

public interface MyInterface{

}

>2.implements关键字

implements关键字是用来修饰类的,类实现接口,其语法格式如下

public class [类名] implements [接口名]{

}

3.接口的组成成员由四个部分组成

1>常量

2>抽象方法

3>静态方法

4>默认方法(用default关键字修饰)

public interface MyInterface{
    //常量
    double pi = 3.1415926;//实际上是public static final double pi = 3.1415926;
    //抽象方法
    public abstract void test1();
    //静态方法
    public static void test(){
        //方法体
    }
    //默认方法
    public default void test2(){
        System.out.print("接口中的默认方法,让子类去调用");
    }
}

注意静态方法和默认方法是jdk1.8以后新添加的内容。

4.接口的相关定义

1.接口与类直接具有多态性,语法格式如下

//接口
public interface MyInterface{

}
//实现接口的类
public class Test implements MyInterface{

}
public static void main(String[] arg)
{
    MyInterface my = new Test();//用接口指向实现的接口的类的对象
}

2.一个类实现接口必须将接口中所有的抽象方法进行重写,否则这个类就要定义为抽象类

//接口
public interface MyInterface{
    //接口中的抽象方法
    public abstract void test(参数);
}
//实现接口的类(将接口中的抽象·方法全部重写的情况)
public class Test implements Myinterface{
    public void test(参数){
        //方法体
    }
}
//实现接口的类(没有重写接口中的抽象方法把这个类定义为抽象类)
public abstract class Test implements Myinterface{
    
}

3.一个类可以实现多个接口

public class Test implements MyImplements,MyImplementsA,MyImplementsB{

}

4.接口与接口之间可以继承,一个接口可以被多个接口继承

public interface MyInterface extends MyinterfaceA,MyinterfaceB,MyinterfaceC{

}
5.类与类考虑继承,类与接口考虑实现(implements),接口与接口考虑继承

 二.抽象类

1.抽象方法

1>抽象方法也是方法的一种,它没有具体的实现,只有声明没有方法体,是抽象的概念。

2>抽象方法必须用abstract去修饰。

3>继承抽象类的类,必须将抽象类中所有的抽象方法进行重写,否则这个类也要定义为抽象类。

定义抽象方法的语法如下:

public abstract void [方法名](参数);

2.抽象类

1>如果父类的方法实现与子类不同,子类都需要进行重写,那么这些方法就显的有些多余,我们就将这种类定义为抽象类。

2>一个类中包含不完整的方法(抽象方法),那么这个类一定是抽象类,但抽象类中可以不含有抽象方法。

3>抽象类是不能创建实例的,因为抽象类中含有抽象方法。

4>抽象类主要是定义一些抽象方法,让子类对其进行重写。

5>当一个类继承了抽象了,那么子类必须将抽象类中的抽象方法进行重写,否则子类也要定义为抽象类。

总结一下,抽象类,抽象方法都是设计层面的东西,需要程序员进行重写来实现方法。

定义抽象类的语法如下:

public abstract [类名]{
    //类中的信息
}

三.抽象类与接口的相同与不同

1.相同

1>都可以含有抽象方法

2>都不能被实例化(因为有未实现的方法)

2.不同

1>抽象类可以包含成员变量,方法,抽象方法,构造方法

2>接口只能包含常量,抽象方法,静态方法,默认方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值