java中的接口,包,final,权限修饰符

本节内容开发中用的不多,仅仅学习语法知识

interface:接口

接口中的成员:JDK 1.8之前只有常量抽象方法

常量 :public static final String name; public static final 可以省略不写,接口默认会为你加上! public static final String SCHOOL_NAME = "黑马";/Sting name="黑马"

抽象方法:public abstract void eat();

public abstract也是可以省略的

(类中全是抽象方法,特称为接口,不全是抽象方法就是抽象类,接口就是抽象类的特殊实例)

接口不能创建对象

什么是接口

接口是一种规范(约束别人做事),规范一定是公开的。

接口的基本使用(与类的关系):被实现

接口可以多实现(一个实现类,实现多个接口)

接口使用的注意事项

接口与接口的关系:多继承

类与类:单继承

类和接口:多实现

接口与接口:多继承、一个接口可以同时继承多个接口。 (一个接口可以同时继承多个几口)

这样可以让代码简洁。

JDK8之后接口新增方法

诞生背景:

以前的话,我们项目上线后,如果要发行新版本,增加接口的内容,那么我们在接口上写了新方法后,所有的实现类都要重写!非常麻烦!牵一发而动全身

后来直接把功能在接口内定义完成。

第一种:默认方法

(接口没有对象,所以用的是实现类的对象调用)

第二种:静态方法

(用接口名调用,实现类名不能调用)

第三种:私有方法

意思就是,在类中的其他方法调用这个私有方法,这样调用其他方法的时候私有方法就被调用了。

在default中调用pravite

使用接口的注意事项

补充:

2、原因是接口的静态方法不能由实现类调用,只能接口自己调用。

3、class Cat extends Animal implements Food{}先继承后实现接口。

4、直接干掉两个干爹的方法,自己重写新的方法。

 

包的基本知识

1、同一个包下的类,可以直接互相访问

2、不同包下的类,先导包

3、假如一个类中需要用到不同类,而这个两个类的名称是一样的,那么默认只能导入一个类,另一个类要带包名访问。(比如,你往测试类里导入了两个studen类,类名都一样。但是第一个student可以使用默认的student。但是第二个就必须是包名加类名的全写)

权限修饰符

自己定义成员满足如下:

成员变量私有

方法公开

#

final

注意:区分方法的重载与重写

重载:同一个类中,出现多个方法名称相同,但形参列表不同,那么这些方法就是重载方法。

重写:在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。

常量

常量是使用了public static final修饰的成员变量,必须具有初始化值,而且执行过程中其值不能改变。

常量的作用及好处:可以用于做系的配置信息,方便程序的维护,同时提高可读性。

抽象类

抽象类的使用场景

抽象类的特点、注意事项

  1. 类有的成员变量、方法、构造器,抽象类也都有

  2. 抽象类中,可以没有抽象方法,但有抽象方法的,一定是抽象类。

  3. 一个类继承了抽象类,必须重写完抽象类的所有抽象方法,,否则这个类也要定义成抽象类

  4. 不能用abstract修饰变量、代码块、构造器。

最重要特征:得到抽象方法,失去了创建对象的能力

final与abstract的关系

互斥关系

abstract定义的抽象类作为模板让子类继承,final定义的类不能被继承

抽象方法定义通用功能让子类重写,final定义方法子类不能重写。

使用场景

做信息标志和分类(比用常量好用!)

枚举:代码可读性好,入参约束严谨,代码优雅,是最好的信息分类技术!建议使用!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值