JAVA(接口,对象,多态部分基础知识的总结)

很早的笔记翻出来,把之前学习java比较迷茫的部分小小的总结了一下。

为什么引入接口?

因为java不支持多重继承(子类只能有一个父类), 即a extends b,c是错误的。接口就是特殊的抽象类,不过接口比抽象类更加抽象。

为了克服java单继承的缺点,一个类可以实现多个接口,使用关键字interface来定义一个接口。接口定义跟类的定义非常相似,分为接口声明和接口体。

Interface 接口名

{

接口体(主要包括抽象方法和常量)

Public static final int MAX=100;

//等价于int MAX=100;

Public abstract void add();

//等价于void add();

Public abstract float sum(float x,float y)

//等价于float sum(float x,float y)

Public default int max(int a,int b)

{

//default方法

return a>b?a:b;

}

}

使用这个标准的类就是接口的使用者,实现这个接口的类就是这个接口的实现者。

接口的出现把使用者(使用这个标准的类)和实现者(实现这个标准的类)之间的直接联系转换为间接联系。把强耦合转化为弱耦合。实现了解耦。(比如:电脑如果没有USB接口,鼠标坏了就无法更换,那么USB接口就实现了解耦功能。)面向抽象编程思想

JDK8以后,接口体允许出现了default关键字。default可以用带方法体的实例方法。

static方法,是一个类方法,不是抽象方法。类方法是有方法体的

JDK9以后,允许在接口体中定义private的方法,目的是配合接口中default的实例方法,即接口可以将某些算法封装在private方法中,供接口中的default的实例方法调用,实现算法的复用。

接口是特殊的类,但不是类,一个类生成一个.class文件,一个接口也是如此。

接口没有构造函数,生来就是被继承(implements)的。

如何使用接口?

首先定义一个interface,然后在interface里写对应的方法,如下:

接着在另外一个类里面继承这个接口并且复写,实现这个接口里面的方法

最后在其他类调用实现接口的类的方法。

输出如下:

接口都有对应的实现类和调用类,调用类调用实现类里面的方法,但是实现类里的方法实现不是唯一的,调用类可根据业务需求调用实现类。

Java的多态:

根据参数的不同执行不同的方法。

new运算符(对象):

如何创建对象

printiml是我写好的一个类,a是我创建的一个对象

但是我发现一个有意思的事情:

这样为什么不报错,printiml引入了print接口,所以可以用print进行声明,接口是可以声明的!

!反过来则不行,因为接口并不是类,类描述对象的属性和方法,而接口则包含类要实现的方法

//声明的对象a,接口也可以声明对象,但是不能创建对象

//printiml类创建的对象a,人类相当于print,人类有属性和行为,薛之谦相当于a,高大上点叫对a进行实例化

new运算符返回它所创建的对象的引用。此引用通常被分配给一个合适的类型的变量,如:Point originone =new Point(23,94);

orginone就等价于Point(23,94)

输入数据要用new——实例化对象,创建内存

Scanner reader = new Scanner(System.in);

Scanner是一个类,reader为创建的一个Scanner的对象,new就创建了这个实例,为其分配变量。

输入的基本类型数据:nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()。

其用法为:Scanner reader = new Scanner(System.in);//先创建对象,然后再使用

int x = reader.nextInt();

这里reader就等价于System.in

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值