四月二十二日java基础知识

1.利用接口实现类的多重继承:
java语言中接口的主要作用是可以帮助实现类似于类的多重继承功能。
多重继承,是指一个子类可以有一个以上的直接父类,该子类可以直接继承它所有父类的
非私有成员。
2.一个类实现多个接口时,在implements子句中用逗号分隔开各个接口名。这种情况下如果
把接口理解成特殊的类,那么这个类利用接口实际上就获得了多个父类,即实现了多重继承
3.接口中的静态方法和默认方法
对接口中静态方法的访问,可以通过接口名直接进行访问,即用“接口名.静态方法名()”的
形式进行调用.例如:Face.show()
4.接口中的默认方法用 default修饰符来定义,默认方法可以被子接口或被实现该接口
的类继承,但子接口中若定义名称相同的默认方法,则父接口中的默认方法被隐藏。
5.接口中的默认方法虽然有方法体,但不能通过接口名直接调用,必须通过接口实现类的实例
进行访问,即通过“对象名.默认方法名()”的形式进行访问。
6.return后面可以返回一行字符串
例如:return "我会返回一行字符串";
7.解决接口多重继承中名字冲突问题:
如果子接口中定义了与父接口同名的常量或者相同名称的方法,则父接口中的常量被隐藏,
方法被覆盖
8.对于常量,若名称不冲突,子接口可以继承多个父接口中的常量,如果多个父接口有同名
的常量,则子接口不能继承,单子接口可以定义一个同名的常量。对于多个父接口中存在同名
的方法时,此时必须通过特殊的方法解决
9.要解决方法名冲突问题,可以在接口的实现类中提供一个同名方法的新实现,或委托其中
一个父接口中的方法。
10.
1)在多个父接口的实现类中解决同名默认方法的名字冲突问题有两种办法:一种是提供同名
的一种新实现;另一种是委托一个父接口的默认方法
2)如果两个父接口的实现类中有一个提供的不是默认方法,而是抽象方法,则只需要在接口
的实现类中提供同名方法的一个新实现即可
3)如果两个父接口中的同名方法都是抽象方法,则不会发生名字冲突,实现接口的类可以实现该
同名方法即可,或者不实现该方法而将自己声明为抽象类
4如果一个类继承一个父类并实现了一个接口,而从父类和接口中继承了同名的方法,此时
采用“类比接口优先”的原则,即只继承父类的方法,而忽略来自接口的默认方法
11. 枚举:
对类似这种一个变量有几种固定取值时,将其声明为枚举类型,再呀应用上更加方便与安全
12.枚举类型的声明必须使用关键字 enum,其语法格式:
[修饰符] enum 枚举类型名{
枚举成员
方法
}
13.修饰符可以为public、private、internal
14.枚举类型名两层含义:一是作为枚举名使用;二是表示枚举成员的数据类型,正因如此
枚举成员也称为枚举实例或枚举对象
15.枚举成员可以一一列出的枚举常量,所以枚举成员也被称为枚举常量或枚举值。任意
两个枚举成员之间不能重名,各枚举值之间可以用“,”分隔
16.枚举这种类与普通类的区别:
1)枚举可以实现一个或多个接口,使用enum关键字声明的美剧默认继承了java.lang.Enum
类,而不是继承java.lang.Object类,因此枚举不能显示地继承其他类
2)使用enum定义非抽象的枚举类是默认使用final修饰,因此枚举类不能派生子类
3)创建枚举类型的对象时不能使用new运算符,二是直接将枚举成员赋值给枚举对象
4)因为枚举是类,所以它有自己的构造方法和其他方法。但构造方法只能用private访问
修饰符,如果省略默认使用private修饰符,如果强制使用访问修饰符,则只能使用private
修饰符
5)美剧的所有成员必须在枚举体的第一行显示列出,否则该枚举不能产生枚举成员。
枚举成员默认使用public static final修饰
17.例子:声明一个表示方向的枚举类型
public enum Direction
{EAST,SOUTH,WEST,NORTH}
定义完枚举类型后便可以枚举类型名直接引用其枚举成员,如Direction.SOUTH
18.由于枚举成员都是常量,所以按命名惯例它们都用大字母表示。
19.最后一个枚举常量NORTH的分号可以省略,但如果枚举中还声明了方法,那么最后的
分号不能省略
20.不包含方法的枚举:
当访问枚举类型的成员时,直接使用枚举名调用枚举成员即可,即“枚举名.枚举成员”
也可使用Enum类定义的valueOf()方法通过“枚举名.valueOf()”的形式进行调用来
获取枚举类的对象
21.包含属性和方法的枚举
枚举的构造方法只是在构造枚举实例时被调用。每个枚举实例值都是枚举的一个对象,
因此创建每个枚举实例时都需要调用该构造方法
22.包的概念:
所谓包就是java语言提供的一种区别类名空的机制,是类的组织方式。
每个包中有文件夹,包中还可以有包,称为包等级
同一个包中的类名不能重复,不同包中的类名可以相同
JAVA语言中的包把各种类组织在一起,使得程序功能清楚、结构分明
23.使用package语句创建包
package 包名1[.包名2[.包名3]...];
在package语句中用“.”来指明文件夹的层次
例如:package.cgj.ly.mapackage;指定这个包中的文件储存在文件夹cgj\ly\mypackage
24.注意:包名与对应文件名的大小写法一致
25.由于java语言的package是用来存放类与接口的地方,所以把package译为“类库”
java提供用于程序开发的类库称为应用程序接口(API)
26.java 实用包
java.lang:语言包
java.io:输入输出的文件包
java.util:实用包
java.net:网络功能包
java.sql:数据库连接包
java.text:文本包

总结:今天结束啦第八章继承、抽象、接口与枚举着一章,是对类的扩展与延伸,从前面的第六章类与对象

到第七章的类的私有成员与公有成员、方法的重载、构造方法、静态成员、对象的应用,感触还是自己学了些东西

但还没有很强地理解,后面讲继续巩固,这样基础才能坚固。一日接一日,总会相同的

posted @ 2021-04-22 22:14  求知律己  阅读(87)  评论(0编辑  收藏  举报