[Java]Java学习笔记(三)——类的基本语法(二)
来源:互联网 发布:网络阅卷软件 编辑:程序博客网 时间:2024/06/07 11:26
基本要点
1、在 Java 中使用 extends 表示继承。所有的继承都是公有继承。
2、在子类中可以通过 super 关键字调用超类(父类、基类)的成员函数或构造函数,格式分别是 super.menberFunction(...)
和 super(...)
。
3、如果不希望某个类被继承,则应该标注为 final,同时类的成员方法也会被自动当作是 final(此时类不再支持动态绑定,可以被内联化);
如果不希望类里的某个方法被子类覆盖,则应该标注为 final;
4、与 C# 相同,Java 也不支持多继承。
5、上行转换时安全的,在 Java 里不需要强制类型转换,
下行转换常常是不安全的,如果是显示地将超类转换为子类,会抛出 java.lang.ClassCastException
异常。
Base[] b = new Base[10];Derive[] d = (Derive[]) b;
如果是间接地用超类覆盖子类数组中的某一个,会抛出 java.lang.ArrayStoreException
异常。
Derive[] d = new Derive[10];Base[] b = d;b[0] = new Base();
6、子类方法覆盖基类方法时,子类方法的访问权限不得比基类方法的访问权限高。
7、obj instanceof Class
关键字可以用于判断 类对象 obj 是否是 类 Class 或其子类的实例。
如果不是,则返回 null。
8、使用 Abstract 声明一个类为抽象类。也可以声明某个方法为抽象方法(纯虚函数)。抽象类不能有实例。
9、如果超类的某个成员需要让子类访问,那么该成员可以声明为 protected。与其他语言有所差别的是,protected 成员对所有子类都可见。
Object 类的 clone 函数就是 protected 属性。
基本上所有使用到 protected 属性成员的类都是类层次关系不良设计的结果。
10、getClass() 方法可以获取存储类信息的 Class 变量,用于判断两个实例的类类型是否相同。
Class 是 Java 用于存储运行时类型(包括接口名)信息的类,最常用的成员方法时 getName,获得类型名称。
还可以使用 forName(String) 通过字符串获得对应的 Class 变量,其中 string 为对应类型的名称或含包路径的名称:
String className = "java.util.Data";Class cl = Class.forName(className);
也可以使用 Type.Class 获取 类型 Type 的 Class 变量。
Class 中还提供了成员函数 newInstance 用于创建类实例。
事实上,这部分是反射里的内容,暂时不讲了。
11、接口:Java 里使用 implements 关键字来表示实现了某个接口,比如 Comparable、Cloneable等。
12、Java 里的模板不需要使用关键字,直接在 <> 里说明即可。
关于 Java 的内部类和反射以后再说。
- [Java]Java学习笔记(三)——类的基本语法(二)
- [Java]Java学习笔记(二)——类的基本语法
- java学习笔记(二) -- 基本语法
- JAVA学习笔记(二)——基本语法
- J2SE学习笔记3 — Java基本语法(1)基本语法规则
- Java学习笔记(二)——基础语法
- java基础语法学习笔记(三)
- java基础语法学习笔记(二)
- (二)java基本语法
- JAVA基本语法(二)
- J2SE学习笔记3 — Java基本语法(2)基本数据类型
- J2SE学习笔记3 — Java基本语法(6)基本输入输出
- JAVA基本语法的学习笔记
- Java——基本语法(三)流程控制
- Java基础语法(二)—基本数据类型转换
- java基本语法学习笔记
- Freemarker学习笔记二—基本语法
- Shell学习笔记二(基本语法)
- CentOS下SSH双机/多机互信
- 那些走过的时间-大学毕业感叹
- SharePoint Online 创建门户网站系列之导航
- 杭电---2066 一个人的旅行
- VB.NET机房收费 & 抽象工厂模式
- [Java]Java学习笔记(三)——类的基本语法(二)
- poj3233矩阵快速幂运算
- IT之路的迷茫阶段
- Java设计模式-4-创建者模式
- shell shock 执行漏洞分析
- VB.NET机房收费 & 初感受
- C++ 中 i++ 与 ++i 的本质区别
- 关于栈的几道面试题目
- 数学(hdu5175Misaki's Kiss again)