【start from zero】java基础归纳【2】

来源:互联网 发布:淘宝生意参谋数据分析 编辑:程序博客网 时间:2024/06/08 20:09
1. 继承,将会继承父类的域和方法,并且可以覆盖父类的方法

2.super 调用父类的域和方法,如果子类的构造器没有显式调用父类的构造器,则自动调用父类默认(没有参数)的构造器

3.子类引用赋予父类变量:多态

4.虚拟机为每个类建了一个方法表,,列出了所有方法的签名和实际调用的方法,在调用方法时,直接查表就知道调用声明方法

5.不允许继承的类称为final类;final修饰的方法,子类不能覆盖

6. abstract 修饰的方法无须实现;保护一个or多个抽象方法的类需要声明为抽象类;抽象类不能实例化;可以定义一个抽象类的变量,但是只能引用非抽象子类的对象;

7. 如果没有声明父类,该类的父类默认是Object

8.// 参数可变的方法
public void print(String word, String... args){    System.out.print(word + " ");    for(String str : args){        System.out.print(args + " ");    }

9.  枚举类型实际上是一个类:
public enum Size {    SMALL, MEDIUJ, LARGE;        private String getSize(){        return "size is ?";    }}
上面的枚举类型有3个实例
所有的枚举类型都是Enum类的子类
每个枚举类型都有一个静态的values方法,结果是返回一个包含全部枚举类型的数组 : Size[]    values = Size.values();

10. 能够分析类能力的程序称为反射:
java运行时会为所有对象维护一个称为运行时的类型标识,这个信息跟踪着每个对象所属的类,虚拟机利用运行时信息选择相应的方法执行。
保存运行时信息的类叫做Class,Object类中的getClass()返回的是Class类型的实例
Class cl = Date.class, 如果T是任意的java类型,T.class代表匹配的类对象,Date.class代表的是一个Class类型的对象
e.getClass().newInstance(), 快速创建一个 e 类型的实例,默认是用e的无参构造器,如果该类没有默认的构造器则会抛出一个异常

11.java.lang.reflect包中有Field, Method,和Constructor三个类,

12.
  • 接口的方法默认为public;
  • 接口没有实例域,也不能实现方法;
  • 可以声明接口变量,引用实现了该接口的类;
  • 接口也可以extends;
  • 接口可以定义常量

13. 克隆: 默认是浅拷贝,对象的基本数据类型不同,但是对象中的子对象是公共的

14. 内部类:在一个类内部定义的类
  • 可以访问该类定义所在的作用域中的数据,包括private数据:内部类有个隐式引用指向外部类
  • 对同一个包的其他类隐藏
  • 定义回调函数时,使用匿名内部类比较便捷
  • 局部类:在方法中定义,作用范围为该方法,



















0 0
原创粉丝点击