day12
/*
一.接口:
1.语句定义格式:接口使用关键字:interface
interface 接口名{}
2.接口如何实现 接口不能实例化
关键字implements 实现该接口
使用多态的形式进行实现 具体的子类进行实例化 其实这是多态的一种 叫做接口多态
3.也可以用一个抽象类去实现
三种多态的表现形式
1.具体的类中的多态
2.抽象类中的多态
3.接口中的多态
*/
/*
二.接口中成员的特点:
成员变量:
只能时常量,并且时静态的
jvm运行之前会自动补齐public static final
构造方法:
接口中没有构造方法
成员方法:
接口中的方法只能是抽象方法 没有方法体 大括号也没有
jvm运行之前会补齐 public abstract
注意:
1.当一个具体的类实现接口的时候 必须实现接口中所有的抽象方法
2.当一个抽象类实现接口的时候 可以选择不实现接口中的方法 也可以选择性的实现
虽然接口中没有构造方法 但是多态初始化的时候会先初始化父类再初始化子类
类与类 类与接口 接口与接口的关系
类与类:
存在继承关系 只能进行单继承 不可以进行多继承 但是可以多层次继承
类与接口:
实现关系 可以是单继承 也可以是一次性实现多个接口 也可以在继承一个类的同时 实现多个接口
接口与接口:
存在的是继承关系 可以是单继承 也可以是多继承
*/
/*
三.包:在这里就是文件夹的意思
面试题:
package import class 三者之间有没有顺序关系
package:到达的路径 所在文件的路径 它最终以包结束
import:导入外界你想要使用的类 他最终以你想要导入的哪个类/java结束
class:表示定义一个类 java的最基本的单位
*/
/*
四 权限修饰符: 同一类下 同一包子类中,其他类 不同包的子类 不同包的其他类
public √ √ √ √
protected √ √ √
默认的 √ √
private √
*/
/*
五.类及其组成可以用的修饰符:
修饰符:
访问权限修饰:public,protected,默认的,private
状态修饰饰:static,final
抽象修饰符:abstract
类:
访问权限修饰:public,默认的,
状态修饰饰:final
抽象修饰符:abstract
成员变量:
访问权限修饰:public,protected,默认的,private
状态修饰饰:static,final
构造方法:
访问权限修饰:public,protected,默认的,private
成员方法:
访问权限修饰:public,protected,默认的,private
状态修饰饰:static,final
抽象修饰符:abstract
常见的修饰符组合:
成员变量:public static final 在接口中遇见
成员方法:
1、public abstract
2、public static
3、public final
将来开发中,除了封装必须使用private以外,如果你实在不知道用谁,就用public
*/
/*
六.形式参数:
基本数据类型:byte short int long float double char boolean
引用数据类型:
类:当类作为方法的形式参数的时候 实际上需要的是该类的对象
抽象类:当抽象类作为形式参数传参的时候 实际上需要的是该类子类实现对象的地址值 利用多态的形式创建
接口:
数组
*/
/*
七. 形式参数:
基本数据类型:byte,short,int,long,float,double,char,boolean
引用数据类型:
类:当类作为方法的形式参数的时候,实际上需要的是该类的对象
抽象类:当抽象类作为形式参数传参的时候,实际上需要的时候该类子类实现对象的地址值,利用多态的形式创建
接口:当接口作为形式参数传参的时候,实际上需要的是该接口的实现类对象的地址值,利用接口多态的方式创建
数组:
*/
/*
八.方法返回值的问题:
基本数据类型:byte,short,int,long,float,double,char,boolean
引用数据类型:
类:当类作为方法的返回值的时候,实际上返回的是该类对象的地址值。
抽象类:当抽象类作为返回值的时候,需要返回的是该抽象类的子类对象
接口:当接口作为返回值类型的时候,
*/
总结
1、接口:interface
1)接口中成员变量只能是常量,默认有修饰符public static final
2)接口中成员方法,也是有默认修饰符的 public abstract
3)接口中没有构造方法
4)要想实例化接口,创建一个具体的类实现接口,并实现接口中所有的抽象方法
5)接口与接口之间是继承关系,可以进行单继承,也可以进行多继承
6)如果是一个具体的类实现接口,必须实现接口中所有的抽象方法
如果是一个抽象类实现接口,可以选择性的实现方法,也可以不进行实现
2、引用数据类型作为形式参数的时候
当类作为参数的类型的时候,实际上需要的是该类的对象的地址值
当抽象类作为参数的类型的时候,实际上需要的是该抽象类的子类的对象的地址值
当接口作为形式参数的类型的时候,实际上需要的是实现该接口的类的对象的地址值
3、引用数据类型作为方法的返回值的时候
当类作为方法的返回值类型的时候,实际上需要的是该类的对象
当抽象类作为方法的返回值的时候,实际上需要的是该抽象类子类的对象
当接口作为方法的返回值的时候,实际上需要的是实现该接口具体的类的对象
4、package,import,class的顺序
5、访问权限修饰符
public
protected
默认的
private
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性