1. 多态:父类型的引用可以指向子类型的对象。
2. Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有
sing()方法, 如果没有则编译错误;如果有,再去调用子类的 sing()方法。
3. 一共有两种类型的强制类型转换:
a) 向上类型转换( upcast):比如说将 Cat 类型转换为 Animal 类型,即将子类型
转换为父类型。对于向上类型转换,不需要显式指定。
b) 向下类型转换( downcast):比如将 Animal 类型转换为 Cat 类型。即将父类型
转换为子类型。对于向下类型转换,必须要显式指定(必须要使用强制类型
转换)。
4. 抽象类( abstract class): 使用了 abstract 关键字所修饰的 类叫做抽象类。 抽
象类无法实例化,也就是说,不能 new 出来一个抽象类的对象(实例)。
5. 抽象方法( abstract method): 使用 abstract 关键字所修饰的方法叫做抽象方
法。 抽象方法需要定义在抽象类中。相对于抽象方法,之前所定义的方法叫
做具体方法(有声明,有实现)。
6. 如果一个类包含了抽象方法,那么这个类一定是抽象类。
7. 如果某个类是抽象类,那么该类可以包含具体方法(有声明、有实现)。
8. 如果一个类中包含了抽象方法,那么这个类一定要声明成 abstract class,也
就是说,该类一定是抽象类;反之,如果某个类是抽象类,那么该类既可以
包含抽象方法,也可以包含具体方法。
9. 无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。
10. 在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现父类
中所定义的所有抽象方法;否则,该子类需要声明成一个 abstract class。
11. 接口( interface): 接口的地位等同于 class, 接口中的所有方法都是抽象方
法。在声明接口中的方法时,可以使用 abstract 关键字,也可以不使用。通
常情况下,都会省略掉 abstract 关键字。
12. 可以将接口看作是特殊的抽象类(抽象类中可以有具体方法,也可以有抽象
方法,而接口中只能有抽象方法,不能有具体方法)。
13. 类可以实现接口。 实现使用关键字 implements 表示,代表了某个类实现了
某个接口。
14. 一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法。如果
该类是个抽象类,那么就无需实现接口中的方法了。
15. Java 是单继承的,也就是说某个类只能有唯一一个父类;一个类可以实现多
个接口,多个接口之间使用逗号分隔。
16. 多态:所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型
的引用可以指向实现该接口的类的实例。 关于接口与实现接口的类之间的强
制类型转换方式与父类和子类之间的强制类型转换方式完全一样。
17. static 关键字: 可以用于修饰属性,也可以用于修饰方法,还可以用于修饰
类(后面的课程讲)
18. static 修饰属性: 无论一个类生成了多少个对象,所有这些对象共同使用唯
一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象
的该静态成员变量的值也会随之发生变化。 如果一个成员变量是 static 的,
那么我们可以通过类名 .成员变量名的方式来使用它(推荐使用这种方式)。
19. static 修饰方法: static 修饰的方法叫做静态方法。 对于静态方法来说,可以
使用类名 .方法名的方式来访问。
20. 静态方法只能继承,不能重写( Override)。
21. final 关键字: final 可以修饰属性、方法、类。
22. final 修饰类:当一个类被 final 所修饰时,表示该类是一个终态类,即不能被
继承。
23. final 修饰方法:当一个方法被 final 所修饰时,表示该方法是一个终态方法,
即不能被重写( Override)。
24. final 修饰属性: 当一个属性被 final 所修饰时,表示该属性不能被改写。
25. 当 final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化
(比如说不能从 10 变为 20);如果 final 修饰一个引用类型时,表示该引用
类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化
的。
26. 对于 final 类型成员变量,一般来说有两种赋初值方式:
a) 在声明 final 类型的成员变量时就赋上初值
b) 在声明 final 类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋
上初值。
27. static 代码块:静态代码块。 静态代码块的作用也是完成一些初始化工作。首
先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,
而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需
要将类加载到 Java 虚拟机上( JVM),然后由 JVM 加载这个类来生成对象。
28. 类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只
会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每
次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造
方法一次。
29. 如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类
的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类
的构造方法,一直执行到最底层类的构造方法。 注意:静态代码块只会执行
一次。
30. 不能在静态方法中访问非静态成员变量;可以在静态方法中访问静态的成员
变量。可以在非静态方法中访问静态的成员变量。
31. 总结:静态的只能访问静态的;非静态的可以访问一切。
32. 不能在静态方法中使用 this 关键字。
Java必会的基础知识(2)
时间: 2024-11-05 02:18:28
Java必会的基础知识(2)的相关文章
Java必会的基础知识(1)
1. 类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念. 先有类,然后由类来生成对象( Object).对象又叫做实例( Instance).2. 类由两大部分构成:属性以及方法.属性一般用名词来表示,方法一般用动词来表示.3. 如果一个 java 源文件中定义了多个类,那么这些类中最多只能有一个类是 public 的,换句话说,定义的多个类可以都不是 public 的.4. 在 Java 中进行方法的参数传递时,无论传递的是原生数据类型还是引用类型,参数传递方式统一是传值( pas
Java必会的基础知识(3)
1. 接口中所声明的方法都是抽象方法. 接口中的方法都是 public 的.2. 接口中也可以定义成员变量. 接口中的成员变量都是 public. final. static 的.3. 一个类不能既是 final,又是 abstract 的.因为 abstract 的主要目的是定义一种约定,让子类去实现这种约定,而 final 表示该类不能被继承,这样 abstract 希望该类可以被继承而 final 明确说明该类不能被继承,两者矛盾.因此一个类不能既是 final 的,又是 abstract
Java中String的基础知识
Java中String的基础知识 ==与equal的区别 基本数据类型,指的是java中的八种基本数据结构(byte,short,char,int,long,float,double,boolean),一般的比较是使用的 ==,比较的是他们的值. 复合数据类型(类) ==比较的是两个对象的引用,可以理解为在内存中的地址,除非是同一个new出来的对象,他们的 ==为true,否则,都为false. equal是object中的方法.object中的实现如下,内部还是使用==实现,也就是说,如果一个
[基础] Java目录(摘自Java核心技术·卷1 基础知识)
Java核心技术·卷1 基础知识(原书第9版) 第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java"白皮书"的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安全性 1.2.6 体系结构中立 1.2.7 可移植性 1.2.8 解释型 1.2.9 高性能 1.2.10 多线程 1.2.11 动态性 1.3 Java applet与Internet 1.4 Java发展简史 1.5 关于Java的常见误解
Java多线程完整版基础知识
Java多线程完整版基础知识 (翟开顺由厚到薄系列) 1.前言 线程是现代操作系统中一个很重要的概念,多线程功能很强大,java语言对线程提供了很好的支持,我们可以使用java提供的thread类很容易的创建多个线程.线程很不难,我对之前学习过的基础,在这做了一个整理,本文主要参考的是Java研究组织出版的j2se进阶和张孝祥-java就业培训教材这两本书 2.概述 2.1线程是什么 主要是线程与进程的区别,这里不再阐述,自行网上搜索 为什么使用线程:操作系统切换多个线程要比调度进程在速度上快很
《java核心技术 卷1 基础知识》二
<Java核心技术 卷1 基础知识>第4-5章 在Java中没有类就无法做任何事情 new操作符的返回值是一个引用 在Java中,如果使用一个未初始化的指针,运行系统会产生一个运行时错误. Date 用来表示时间点 LocalDate 日历表示法 同时不推荐使用Date类来处理日历 推荐使用LocalDate来处理日历 每一个拥有名字的类都会被编译生成对应的class文件 所有的Java对象都是在堆中构造的,构造器总是随着new操作符一起使用 在Java中,所有的方法都必须在类的内部定义,但并
《Java核心技术 卷1 基础知识》三
<Java核心技术 卷1 基础知识> 第六章 接口和内部类 接口不是类,而是对类的的一组需求描述. 接口不能包含实例域--接口没有实例 可以将接口看作没有实例域的抽象类 要将类声明为实现某个接口,需要使用关键字implements. 类实现一个接口的具体步骤为: 1)使用implements关键字进行声明要实现的接口 2)对接口中的所有方法进行定义 接口中的所有方法默认为public 但在实现接口时需要声明为public 这里介绍了Comparable接口,该接口只有一个方法,compareT
《Java核心技术 卷1 基础知识》七
<Java核心技术 卷1 基础知识> 第10章 图形程序设计 在Java1.0刚出现时,就包含了一个基本GUI程序设计的类库,即抽象窗口工具箱(Abstract Window Toolkit,AWT) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(如windows.Macintosh等)的本地GUI工具箱的方式, 由本地工具箱负责用户界面元素的创建和动作 但由于在不同的平台上,操作行为有一些微妙的差别 因此,AWT也由"一次编写,随处使用"变为"一次
《Java核心技术 卷1 基础知识 原书第9版》pdf
下载地址:网盘下载 内容简介 编辑 CayS.Horstmann等编著,公飞编译的<Java核心技术>(CoreJava)自第1版出版以来,一直备受广大Java程序设计人员的青睐,畅销不衰,是Java经典书籍.第8版针对JavaSE6平台进行了全面更新,囊括了Java平台标准版(JavaSE/J2SE)的全部基础知识,提供了大量完整且具有实际意义的应用实例,详细介绍了Java语言基础知识.面向对象程序设计.接口与内部类.事件监听器模型.swing图形用户界面程序设计.打包应用程序.异常处理.登