java面向对象
构造方法
- 构造方法的名字与类的名字相同
- 构造方法分为有参构造和无参构造,无参构造是默认存在的,并且new关键字会调用无参构造函数
- 构造器没有返回值
- 写了有参构造无参构造方法就没了。
内存分析
- java程序有堆和栈两种,栈中存放引用变量,而堆中存放其他数据,堆可以分为存放对象的区域和方法区,方法区里主要是类中的常量名,方法,还有static修饰的变量或方法。
封装
- 属性私有,方法公有,private<default<protect<public
- 对类中属性的操作通过get/set来实现
继承
- 关键字extends,目的是让子类可以调用父类的方法和属性,静态的和非静态的调用方式不同。前提是不能是private修饰的。
- 一个类只能继承一个父类,而一个类可以被多个子类继承
- ctrl+h会打开继承树,ctrl+鼠标左键导入包
super和this
- super调用父类的属性和方法,this调用当前类的属性和方法
- 当new一个类时,会先调用该类的父类的构造方法,然后再调用自己的构造方法。super()表示调用父类的无参构造方法
重写
父子类中的一个概念,就是子类对父类函数方法的重写,只修改方法体的内容。这个方法是非静态的。
多态
- 父类的引用可指向子类的对象,如 Parent p =new Son();
- 此时的p引用只能调用自己类的方法,如果是子类重写了父类的方法,那么子类引用就调用重写过后的方法。
- 多态可以达到同一个方法名,调用的引用类型不同,方法就不同。