封装:
对象属性私有化,向外界提供公开的访问方法
setPassword:可以设定密码长度
this:发生在本类
继承:
<1>:代码重用|基类|继承
<2>:泛化:由子类抽象出共性,生成父类
<3>:特化:从父类来看,子类由特性
<4>:Java中不能多继承,只能是单继承,但是java间接的多继承 多实现接口。(面向接口编程)
<5>:如果是不继承,默认是Object
<6>:构造方法不能被继承
<7>:方法和属性可以被继承()
<8>:子类的构造方法隐含的调用父类的默认构造方法
<9>:如果父类中没有默认的构造方法,则应该在子类的构造方法的第一行明确的声明调用父类中其他的构造方法。如下形式:super(…)(javabean)
<10>在继承下对象生成过程:
<1>:递归构造父类对象
<2>:分配空间
<3>:属性赋值
<11>:super的关键字只发生在父子类中
<12>:方法的覆盖:
<1>:方法名相同,并且参数列表要相同
<2>:子类访问权限不能比父类小
<3>:返回类型必须相同
<4>:子类抛异常不能比父类宽
多态:
<1>:多态的三大原则
<a>:对象类型不变
<b>:只能调用对象引用类型的中的方法
<c>:运行时寻找子类覆盖后的方法
Animal a = new Dog();
a.sleep();//sleep一定是在父类,子类都有,Dog.Sleep();
a.shopping();//shopping是dog类里面,而animal没有 //这个是调用报错
<2>: java.lang.ClassCastException(类型转换异常|强制类型转换)
java.lang.NullPointerException(空指针异常|对象返回是空)
java.lang.ClassNotFoundException(找不到类|jar文件没有导入)
<3>:在我们以后编程中,如果出现类型转换,最好的办法
instanceof 来判断