java 接口 抽象类_java接口与抽象类

一,接口

1、什么是接口?

那在日常生活中接口是什么呢?就是两个对象之间进行连接的部分就是接口,就比如热水器与水管的接口一样,他可以确保不同的东西之间的顺利连接,就如不同的热水器厂家和水管厂家只要按照接口的标准来进行生产。那么热水器和水管就可以顺利连接了。而在java领域中接口是抽象类的一种,只包含常量和方法是定义,而没有变量和方法的实现,且其方法都是抽象方法。

1.1、具体表现:1、通过接口实现列的相同行为,不用考虑类之间的关系。

2、通过接口指明需要实现的方法。

2、接口的语法声明:

Xxx.java文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

package pkg2;

//定义类的接口,public后面加interface

public interface Xxx{

//方法 抽象方法必须是没有方法体,而不是方法体内没有代码。如下

public int a();

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

Xxxlmpl.java文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package pkg2;

2

3 //Xxxlmpl.java文件名 连接 Xxx.java文件名

4 public class Xxxlmpl implements Xxx{

5

6 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

3.接口用法:用一道题目来讲解接口的用法,计算圆的周长,面积和体积。

第一步:我们先来写一个接口类的文件:Circle.java文件。

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package pkg8;

2

3 public interface Circle{

4

5 //定义一个方法 类型用float 类接口不需要方法体 所以直接用分号。

6 //周长

7 public float getCircumference();

8 //面积

9 public float getArea();

10 //体积

11 public float getVolumeCube();

12 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

再写一个接口的实现类:Circlelmpl.java文件。

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package pkg8;

2

3 public class CircleImp2 implements Circle2{

4 //定义用于表示圆周率的常量PI

5 private static final float PI = 3.14f;

6

7 //定义用于表示圆的半径

8 private float radius;

9

10 //构造方法用于传递参数。

11 public CircleImp2(float radius){

12 this.radius = radius;

13 }

14

15 //把接口类的需要求的周长,面积,体积实现 如果下:

16 //周长

17 public float getCircumference(){

18 //实现的代码

19 return 2 * PI * radius;

20 }

21 //面积

22 public float getArea(){

23 //实现的代码

24 return PI * radius * radius;

25 }

26 //体积

27 public float getVolumeCube(){

28 //实现的代码

29 return 4/3 * radius * radius * radius;

30 }

31 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

提示:implements 接口列表:可选参数,用于指定该类实现的是哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。

最后来一个测试类:Test.java文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

package pkg8;

public class Test2{

public static void main(String args[]){

//写了构造方法,所以直接把值传过来即可。

//求半径为8.3的圆的周长,面积,体积。

Circle2 circle = new CircleImp2(8.3f);

System.out.println("周长是:"+circle.getCircumference()+" cm");

System.out.println("面积是:"+circle.getArea()+ " cm^2");

System.out.println("体积是:"+circle.getVolumeCube()+ " cm^3");

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

运行结果:

a5d93b0e67b709fb27f686bf6d0de17e.png

4、final关键字

上面代码中 出现了一个final关键字,那final关键字有上面作用呢

46bb859d9f64b1fab47a7a6540601a9f.png

final关键字的作用代表的是不可变的,最终的意思,他可以修饰类,类的成员变量和成员方法。但是final作用不同

1、fina修饰成员变量:则成为常量  如:final double count;

2、final修饰成员方法:则该方法吧被子类重写。

3、final修饰类,则类是不能被继承的 如:

public final class Name{

.....

}

总结:

final关键字的用法共有四种:

用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值。

用来修饰方法参数,表示在变量的生存期中它的值不能被改变;

修饰方法,表示该方法无法被重写;

修饰类,表示该类无法被继承。

二、抽象类

抽象类的特点:

1、最大的特点就是模糊的。为什么说是模糊的呢?因为抽象类是不具体的,现实不存在的东西。

2、抽象方法 必须要有抽象类   (但抽象类中可以没有抽象方法)   否则程序会报错。例如:

48304ba5e6f9fe08f3fa1abda7d326ab.png

package pkg9;

public class 周末{

public void 逛街(){

}

public void 看电影(){

}

//抽象类

public abstract void 结婚();

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

这里定义了一个周末的类  在里面有一个3个方法其中一个是抽象方法。

运行结果:

33dfe7e0259872cc7fc825c1275978b2.png

定义一个抽象类:

03ad04259c59302518aa6caafd65ab4c.png

3、继承了抽象类,必须实现抽象类的所有抽象方法。

4、抽象类也可以继承抽象类,这样不需要实现父抽象类的方法。

接口和抽象类有什么区别?

1、接口中的所有方法都不需要实现(不允许有任何代码)。抽象类有些方法实现,有些方法没有实现。

2、接口里只能包含抽象方法,静态方法和默认方法,不能为普通方法提供方法实现,抽象类则可以包含普通方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值