定义:用于构造对象的一种行为
格式:public 类名(){}
构造方法中:会默认有构造对象的流程(是调用底层代码实现)
例如:
public class Student {
}
public Student(){
}
内存:存储所有运行程序的数据(短期存在)
硬盘:存储持久化文件(长期存在)
内存分为两个部分:栈存储部分,堆存储部分
变量存储的是对象所在地址
变量存储于栈存储部分,对象存储于堆存储部分,由栈存储对应指向堆存储
2. 方法重载
定义:同一个类中,多个方法的方法名相同,参数列表不同(参数个数/参数顺序/参数类型)的方法互为重载方法
例如:
public void teach(){
System.out.println("方法一");
}
public void teach(int a){
System.out.println("方法二");
}
public void teach(String a){
System.out.println("方法三");
}
public void teach(int a,String b){
}
public void teach(String b,int a){
}
}
注意:构造方法也是可以重载,提供不同的构造对象模式
构造方法重载可以初始化对象的属性public Teacher(){}
public Teacher(int a){}
public Teacher(String a){
name = a;
}
3. 继承
定义:子类继承父类属性和方法(构造方法不会被继承)
格式: public class 子类类名 extends 父类类名{}
public class B extends A{
}
注意:
任何一个类都是Object类的子类
继承是单继承,但是可以多层继承(接口可以多继承)
4. 方法重写
定义:子类重写父类的方法,格式上方法名、参数列表、返回类型必须都要一致
父类:public class Common {
public String name;
public void test(){
System.out.println("Common类的测试");
}
}
重写:
public class A extends Common{
public void test(){
System.out.println("A类的测试");
}
}
5. 自动转型
自动转型:创建子类对象,自动转型为父类类型
父类:Common,子类:A
Common b = new A();
注意:转型后的对象调用方法,如果此方法子类重写了,则执行重写后的,如果没有重写,则直接执行父类的,子类中重载后的不会执行(子类具有而父类不具有)
6. 多态
多个同一个类型的对象,调用同一个方法,执行的过程不一样
Common类与A类见第4条
Common b = new A();
Common c = new Common();
b.test();
c.test();
对象b与对象c同为Common类,调用同一个方法test(),一个执行重写后的方法,一个执行父类的方法
重写和自动转型决定了多态性