null值 是不与任何值相等的;
opp
封装 : 继承: 多态;
事物(对象) ------ 》 抽象--------》 类 ------ 》对象;
class className {
}
方法重载:
同一个类中:在同一个类中定义;
参数列表 : 顺序,类型不同,
封装: 引用不到; 需要自己设置 get ,set 让其可以获取;
封装: 属性的封装 ---- 行为封装;
Constructor --- 构造器(构造方法); //构造器的目的; 在new 对象的时候 就可以赋值;
和类名相同;
一旦自己定义了构造器,java自带的无参的构造器 就没有了;
多个构造器 : 构造重载 构造器 不能有返回值 而且 一般均为:public
构造器 是可以相互调用的,但是不能形成递归调用;
构造器 调用 : this () ; // this () 只能在放在第一行;
this关键字:
this name = name or this();
继承 : 解决 --- 重复的代码 不用写了;
存在 一定的 关系的 时候 才会继承;
extends 关键字 ;
继承后的调用 : 会采用 就近原则; 用super 可以调用父类;
属性: public,private 均可以 的成员变量 是可以继承的,但是private 不可以被访问;
方法: 可以继承,主要是看能不能访问( 看访问修饰符) ; 用方法去赋值,也可以用来改变成员变量的值;
构造器: 无法被继承,子类的构造隐含调用父类 无参的构造器; 会自动调用父类的(但是父类一定要有 无参的构造器); 也可以显式调用 父类的构造器(手动调用)
子类的构造器 一定会调用父类的构造器 ; super 也要作为第一条语句;
实现也是特殊的一种 继承
方法的重写: @Override
1:返回值类型可以不一样,但是两者必须是子父类的关系; 父类也是要父类 就可以。
2:方法名一致;
3:参数列表相同;
4:子类:修饰符 不能被缩小,可以被扩大;
5:抛出异常: throws excpetions{} 异常是不可以扩大;
多态: 一般也是发生在子父类中间。
父类或者接口的引用指向其子类的对象
Person p1 = new Teacher ();
编译的时候 是看的 =号左边的,
运行的时候 是看的 =号右边的,
类型转换 : 看成 子类转父类 , 由高转低 看有没有 多态的情况才能强转 instanceof ;
多态:
网友评论