blog 2019.3.12 Day13 抽象 &&接口

在这里插入图片描述
实例化:就是创建对象
在这里插入图片描述
在这里插入图片描述

抽象方法不需要实现,只需要定义即可。
在这里插入图片描述
也就是不需要后面的代码块了,仅仅定义了这个方法即可 { },然后在子类里面重写。

特点:
1、在类的前面加上abstract,当前类就变成抽象了类。
如果一个类里面定义抽象方法,当前类必须是抽象类。
2、在抽象类里面,也可以定义普通方法。
在这里插入图片描述
3、抽象方法里面必须有abstract来修饰才代表它是抽象方法。

疑问:
1、抽象类和普通类的区别?
区别:抽象类里面可以有抽象方法也可以有普通方法,而普通类里面只能有普通方法,不能有抽象方法。
2、为什么要有抽象类?

抽象类使用的场景:
(1)在某些场景下,父类只知道子类包含了哪些行为,但是无法准确描述出子类的行为具体包含哪些内容,不知道子类的行为具体是怎么实现的,这个时候就定义为抽象类。
(2)从多个类中取抽象一个父类出来,利用这个父类作为子类的模板,从而避免子类的随意设计。

子类继承父类,如果父类里面有抽象方法,子类必须要重写。
父类成员方法可以重写,可以不重写。

若有一个abstract类去继承另外一个抽象类,那抽象方法可以不用重写。
在这里插入图片描述
Dog继承Animal JinMao继承dog,这时候可以把dog类也写成抽象类,就可以不用重写。

 在子类继承无论是父类还是爷类的途中,只要父类或者爷类是抽象类,子类是一般类,那么子类必须重写父、爷类的所有抽象的子类。

前提:父类dog是一个抽象类。而且没有进行无参构造,一般这种情况下会自动生成一个无参构造,但是抽象类不行。 在抽象类的子类里面不可以直接实例化。
在这里插入图片描述
抽象类不可以直接实例化。
在这里插入图片描述
可以通过父类对象引用子类。(多态)

java里面的类只能单继承。如果遇到需要继承多个属性怎么办?------通过接口实现多继承。

接口

在这里插入图片描述
接口是抽象方法和常量定义的一个集合。

从本质上来讲,接口是一种特殊的抽象类,接口中所定义的方法全是抽象方法,所定义的变量全都是常量。

语法:

      public interfcae IGame{
      //定义常量
      public static final double PI =3.14
      int  M= 10;// 相当于 public static final int m = 10;
     //定义的常量必须大写
     //定义抽象方法
     public abstract  void add();
}

规定,接口里面的所有方法都是抽象方法,interface前面默认加了abstract。
在接口里,所有方法都是抽象方法,省略方法前面的abstract。也可以省略访问修饰符。因为默认都是public

接口的作用是什么?
1、接口里面定义的方法全都是抽象方法,子类实现接口的时候,必须实现所有抽象的方法,这样就对子类的方法做了一个约束,不能让子类乱写方法,统一在接口中。

2、解决java中一个类只能单继承的问题,有了接口以后,一个类可以实现多个接口来弥补以前单继承不足的问题。

实现接口,实现接口其实也是一种继承关系
在这里插入图片描述
igame是另外一个父类,若要实现接口内容,就需要用这个接口去指向这个子类对象来获取父类的属性。

接口的使用 2
1、一个类可以实现多个接口,完成多重继承。
在这里插入图片描述
2、接口中声明的属性默认就是public static final类型的
3、接口中只能定义抽象方法。
4、接口可以继承其它接口。一个接口可以继承多个接口。
在这里插入图片描述

接口可以继承多个接口,但是接口不能implements其他接口

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值