构造器:与类名相同,且没有返回值
快捷键:alt + insert
有参构造选择“OK”,无参构造选择“Select None”
面向对象的三大特性:封装、继承、多态
1.封装
当类中的方法为public时, 可以在其他类中通过 对象名.属性名 进行操作
当类中的方法为private时,无法在其他类中通过 对象名.属性名 进行操作
此时可以使用get / set方法进行操作:
1. get:
2. set:
3. 此时使用setName对方法中的name属性进行赋值:
在编写代码时应将类中的属性方法定义为私有(private),然后通过在类中创建get / set 方法来对类中的属性和方法进行调用
快捷创建get / set方法:alt + insert,第2,3,4均可 选择要创建方法的属性
选择OK即可
2.继承
Java中只有单继承没有多继承(一个子类只能由一个父类,但一个父类可有多个子类 )
crtl + h :查看继承的层级
修饰符(public、protected、private)的区别:
protected:对于同属于其父类的其他类,可以直接使用。否则和 private 作用相同
private(私有)的属性 可以被 继承 ,但无法被其他类 访问 !!!
举例:
结果为:
第一个
表示调用test方法时传给形参name的值
第二个
表示当前类中定义的name属性的值
第三个
表示当前类所归属的父类中name的值
子类通过 super 来访问父类中的属性
PS:在new对象(使用构造器时会先构造父类,再构造子类)
执行结果:
结论:1. super 调用 父类 的构造方法时,必须在构造方法的第一个
2. super 只能在 子类的方法或构造方法中使用
3. super 和 this 不能同时调用构造方法
方法的 重写 :
前提是存在继承关系,是 父类重写子类的 方法
1. 方法名 必须相同
2. 参数列表 必须相同,否则变为重载
3. 修饰符的范围可以 扩大:public > protected > default > private
4. 抛出的异常范围可以被缩小,不能扩大
5. 被 final 修饰的无法进行重写
快捷键:Alt + Insert,选择override
3.多态:
是方法的多态
子类对象只能调用自己或者所继承父类的方法
父类不能调用子类独有的方法,如果要调用需要进行强制类型转换
eat 方法在子类中,通过父类的对象名调用 eat 时需要对父类的对象进行强制类型转换,转换为子类对象
instanceof:测试它左边的对象是否是它右边的类的实例,是返回True,否则返回False