类class 将一类事物的特征和动做,封装为属性和方法(封装相关数据,方法代码); 封装 实例,一个具体的个体(new建立) 能够保存独立的数据,独立控制执行指定方法; 引用 保存一个实例的地址 引用特殊值null 局部代码块: 在方法中提供一个{}. 局部代码块能够提升栈内存的效率,能够提早释放局部的变量内存。 构造方法 构造代码块:会在每一次建立对象时调用,构造代码块是先与构造方法执行的 使用方式:直接在类中提供一个{} 新建实例时执行,子类调用父类的无参构造方法 class定义类必需要有构造方法 不定义,默认为无参 构造方法做用:任意 经常使用方法:赋值 this 1.this.属性名---本类里的成员变量,当变量名重复时使用 2.this.方法名------本类的方法名 3.This(……)----本类里的构造方法,减小代码重复 This()只能用在构造方法中的第一行 Overload 方法重载:一个方法有多种参数传递方式 同名不一样参数, 继承: 把原有类中的公共的代码抽取到一个新类中,原有类和新类使用extends关键字进行联。新类称之为父类,原有类称之为子类,子类会继承父类的全部属性和方法。可是子类只能使用对子类可见的属性和方法。 JAVA只支持单继承,只能继承一个父类,一个父类能够有多个子类 不继承父类的部分 构造方法 私有成员 private 子类实例 由父类实例和子类实例绑定,总体做为一个实例 调用时,先找子类,再找父类 Overried 方法重写:在父子类中出现了方法签名一致的非静态方法,就称之为重写(Override),或者称之为覆盖 子类调用父类方法时,父类方法不知足子类的需求,须要重写, 必须与父类的返回值与参数一致; 两同:方法名,参数列表相同 返回值异常两小: 1.返回值: 若是返回值为基本数据类型,子类的返回值必须和父类相同 若是返回类型为引用数据类型,子类返回值小于等于父类; 2.异常: 子类向上抛出的异常 要小于等于父类; 一大: 访问修饰符权限;public >protected>default>privade> 子类的访问修饰符权限必须大于等于父类; Super super关键字能够调用父类可见的方法和属性 super()和this()不能共存 1.super.属性名-----父类里面的成员变量 2.super.方法名---父类的方法名 3.super()/super(参数) ----调用父类的无参构造/可见方法 Super()只能出如今构造方法体第一句 每个类的构造方法有默认的super(); 多态:事物的多种形态 //编译看左边,运行看右边: 编译时多态:方法重载 运行时多态:向上造型,方法重写 一致的类型,全部子类型实例,均可以被当作一致的父类型来处理 向上转型: 定义一个父类的变量,用以引用子类的地址空间 只能调用父类中定义的方法 向下转型: 强制转换,须要保证转型的安全 Instanceof 判断运行期的类型 对真实类型及其父类型判断,都获得true 抽象类abstract 半成品的类,一个未完成的类 抽象方法只有方法定义,没有方法代码 须要用abstract关键词定义 1.做为通用方法在父类中定义; 2.要求子类必须完成该方法; 3.抽象类不能实例化,未完成时半成品;具体子类能够建立实例; 抽象要点 被abstract修饰的类称之为抽象类,被abstract修饰的方法称之为抽象方法 一个类中若是有抽象方法,这个类必须为抽象类 抽象类不能实例化!!! 抽象类必需要有一个子类,子类能够实现抽象类中的抽象方法.若是子类实现类的抽象方法,那么久能够经过向上造型来使用抽象类. final不能修饰抽象类,final修饰的类为最终类不能被继承,抽象类必需要被继承 抽象类能够写构造方法的 抽象类能够提供普通方法 抽象类中的抽象方法能够重载 抽象类中抽象方法不能使用private修饰,抽象方法必须被子类实现 抽象方法不能被static修饰,静态方法能够直接使用类名调用,在抽象类中没有意义. 受java的单继承的影响,抽象类不可以同时继承多个类 接口interface 接口是功能的集合,接口是比抽象类更抽象的"类",在JDK1.8以前接口中只能放抽象方法. 接口是特殊的类 接口是结构设计共计,用来解耦合,隔离实现 语法: Interface 代替class关键词 implements代替extends关键词 接口中只能定义: 公开的常量 //接口中是能够的定义变量,, Public static finalinta=5; //变量默认修饰符publicstaticfinal,其实是一个常量 公开的抽象方法 Public abstract void show();//接口中的方法默认修饰符public abstract 接口不能实例化,必须在implements中实现接口中的抽象方法 接口中的方法能够重载 公开的内部类,内部接口 接口中没有构造方法 类能够同时实现多个接口: Class A extends Object implements x,y,z{} 接口之间继承,不用实现关键词(能够继承多个接口),用extends Interface A extends x,y,z{ } 一个类能够实现多个接口,子接口中能够有相同的方法(接口中只有方法名没有具体的实现代码) java中接口是网状 java中继承是树状结构 java放弃了对接口的编译检查 Javap xxx.calss能够反编译 