JAVASE(5)

news/2024/11/15 1:56:59/

final关键字

final关键字修饰类体现在该类不能被继承
final关键字修饰成员方法体现在该方法不能被重写
final修饰到的成员变量必须被初始化且不能改变值
(初始化三种方式:显式初始化、构造块中初始化、构造方法体中初始化)

常量

通常使用public static final关键字共同修饰成员变量来表达常量的含义,常量的命名规范要求所有字母都要大写,不同的单词之间采用下划线连接

多态

主要指同一种事物表现出来的多种形态
饮料:可乐、雪碧、芬达、脉动...
人:学生、教师、工人、保安....

多态的语法规则
父类类型  引用变量名 = new 子类类型()

多态的特点:

当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调用父类独有的方法
当父类类型的引用指向子类类型的对象时,父类类型的引用不可以直接调用子类独有的方法
对于父子类都有的非静态方法来说,编译阶段调用父类版本,运行阶段调用子类版本(动态绑定)
对于父子类都有的静态方法来说,编译阶段和运行阶段都调用父类版本

严格来说,静态方法不能被重写

引⽤数据类型之间的转换

  • 引⽤数据类型之间的转换式有两种:⾃动类型转换 和 强制类型转换。

  • ⾃动类型转换主要指⼩类型向⼤类型的转换,也就是⼦类转为⽗类,也叫做向上转型。

  • 强制类型转换主要指⼤类型向⼩类型的转换,也就是⽗类转为⼦类,也叫做向下转型或显式类型转换。

  • 引⽤数据类型之间的转换必须发⽣在⽗⼦类之间,否则编译报错。

  • 若强转的⽬标类型并不是该引⽤真正指向的数据类型时则编译通过,运⾏阶段发⽣类型转换异常。

  • 为了避免上述错误的发⽣,应该在强转之前进⾏判断,格式如下:
    if (引⽤变量 instanceof 数据类型) 判断引⽤变量指向的对象是否为后⾯的数据型。

抽象类

抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能创建对象

抽象方法

抽象方法指不能具体实现的方法并且使用abstract关键字修饰,也就是没有方法体
访问修饰符  abstract  返回值类型  方法名(形参列表);

抽象类中可以有成员变量、构造⽅法、成员⽅法。

抽象类中可以没有抽象⽅法,也可以有抽象⽅法。

有抽象⽅法的类必须是抽象类,因此真正意义上的抽象类应该具有抽象⽅法且使⽤abstract关键字修饰。

抽象类的实际意义

抽象类的实际意义不在于创建对象⽽在于被继承。

当⼀个类继承抽象类后必须重写抽象⽅法,否则该类也变成抽象类,也就是抽象类对⼦类具有强制性和规范性,因此叫做模板设计模式。

面试考点:

static关键字能不能和abstract关键字共同修饰一个方法?不能
static是修饰的方法是通过类名.的方式调用,但是abstract不能实例化对象

final关键字能不能和abstract关键字共同修饰一个方法?不能
final修饰的方法不能被重写,但是抽象方法就等着被子类重写

native关键字能不能和abstract关键字共同修饰一个方法?不能
native修饰的方法代表该方法已经被实现

private关键字能不能和abstract关键字共同修饰一个方法?不能
private修饰的方法是不能被继承的

接口

接口中只能有常量,不能有成员变量
接口中只能有抽象方法

定义类的关键字是class,而定义接口的关键字是interface

接口与接口之间是继承,当某一个类实现了子接口,它父类接口中的抽象方法也是需要重写的

类和接口之间的关系

抽象类和接⼝的主要区别(笔试题)

  •   定义抽象类的关键字是abstract class,⽽定义接⼝的关键字是interface。  

  • 继承抽象类的关键字是extends,⽽实现接⼝的关键字是implements。

  • 继承抽象类⽀持单继承,⽽实现接⼝⽀持多实现。

  • 抽象类中可以有构造⽅法,⽽接⼝中不可以有构造⽅法。

  • 抽象类中可以有成员变量,⽽接⼝中只可以有常量。

  • 抽象类中可以有成员⽅法,⽽接⼝中只可以有抽象⽅法Java8以前的版本)。

  • 抽象类中增加⽅法时⼦类可以不⽤重写,⽽接⼝中增加⽅法时实现类需要重写(Java8以前的版本)。

  • 从Java8开始增加新特性,接⼝中允许出现⾮抽象⽅法和静态⽅法,但⾮抽象⽅法要使⽤default关键字修饰。

  • 从Java9开始增加新特性,接⼝中允许出现私有⽅法(private),可以实现多个默认方法的共性提取(有重复代码就可以提取出来一个方法)。   

内部类

当⼀个类的定义出现在另外⼀个类的类体中时,那么这个类叫做内部类 (Inner),⽽这个内部类所在的类叫做外部类(Outer

final修饰的类不能被继承,修饰的方法不能被重写

访问内部类中的方法:
先new外部类对象,外部类.new 内部类()

如果内部类访问外部类中与本类内部同名的成员变量或⽅法时,需要使⽤this关键字

如果静态内部类访问外部类中与本类内同名的成员变量或⽅法时,需要使⽤类名.的⽅式访问


http://www.ppmy.cn/news/812811.html

相关文章

javaSE 3.5

package hello;public class test {public static void main(String[] args) {//最有效率的方式算出2乘以8等于几&#xff1f;System.out.println(2<<3);// 对两个整数变量的值进行互换 (不需要第三方变量)int a 3,b 5;System.out.println("a"a",b&quo…

java SE

注释 1&#xff09;author 作者 2&#xff09;version 版本号 3&#xff09;see 包 4&#xff09;since jdk版本 String 1&#xff09;String 字面量 1.1&#xff09;jvm在堆中开辟了一段空间来缓存所有使用字面量创建的字符串对象&#xff0c;只要发现使用已经创建过得字符串…

javase 5

因为第一个if满足所以进入执行第二个if不满足条件&#xff0c;而红色的system是和第一个if同一等级的所以执行红色system 输出c&#xff0c;因为false赋给了b所以前三个都是false不满足只有条件伟ture时才执行 Math.random用于生成随机数范围为[0.0,1.0),想要更大的数可以乘以…

JavaSE-5

String是最原始的&#xff0c;不可变字符序列&#xff0c;效率低&#xff0c;线程不安全 StringBuilder是可变字符序列&#xff0c;效率高&#xff0c;线程不安全 StringBuffer是可变字符序列&#xff0c;效率低&#xff0c;线程安全 电脑自动输出时间格式&#xff1a;yyyy-…

Java javase15

一、网络编程 &#xff08;一&#xff09;软件结构 C/S结构&#xff1a;全称为Client/Server结构&#xff0c;是指客户端和服务器结构。常见的有QQ、迅雷等。B/S结构&#xff1a;全称为Browser/Server结构&#xff0c;是指浏览器和服务器结构。常见的有谷歌、火狐等等。网络编…

JAVASE(3.15)

学习不要眼高手低&#xff0c;学习是一点点积累的。即使你现在很菜&#xff0c;坚持学一个学期不会差的&#xff01;只要花时间学习&#xff0c;每天都是进步的&#xff0c;这些进步可能你现在看不到&#xff0c;但是不要小瞧了积累效应&#xff0c;30天&#xff0c;60天&#…

解读NE555

NE555 1、简介2、数据手册功耗相关封装功能图 3、工作原理 1、简介 NE555是一种集成电路&#xff0c;也称为555计时器&#xff0c;广泛应用于模拟电路中。NE555集成电路具有多种应用&#xff0c;包括方波发生器、多谐振荡器、脉冲宽度调制器、定时器等。它是一种通用、可靠、经…

【ts类型体操】00004-easy-pick

要求&#xff1a;实现TS内置的Pick<T,K> 从类型T中选择出属性K&#xff0c;构造一个新的类型 type MyPick<T, K>any import type { Equal, Expect } from type-challenges/utilstype cases [Expect<Equal<Expected1, MyPick<Todo, title>>>,E…