Java构造器与继承
1、java中的构造函数用于初始化当前类对象,除了接口类,每一个类都有自己默认的构造方法。在创建对象是,构造方法会在内存中寻找可用的堆空间,然后将当前类所有属性和方法预先备份一份。构造方法形式上看似没有返回类型,其实是有返回值的,它返回是内存地址。
Public 类名(){}
创建对象是执行构造方法:
public class Student{
public static void main(String[] args){
Student stu=new Student();
System.out.println("创建了一个学生对象")
}
}
运行结果:创建了一个学生对象
内存存储机制:
硬盘(持久化文件数据)
内存(正在运行的程序数据)
缓存(屏幕展示数据)
public class Student{
public static void main(String[] args){
Student stu1=new Student();
Student stu2=new Student();
stu1.name="小红";
stu2.name="小绿";
stu1=stu2;
stu2.name="小蓝";
System.out.println(stu1.name);
System.out.println("stu2.name");
}
}
运行结果:
小蓝
小蓝
方法的重载:同一个类中,有多个方法名相同,但参数列表(类型、参数个数、参数顺序)不同的函数方法。它的作用体现于执行同名方法表现不同的执行过程。需要留意的是它的返回类型并没有约束,可以随意改变。构造函数的重载还休要注意,如果重载了构造函数,又要想显示构造函数,就得显性的定义出来。
public Student(){}
public Student(String s){}
public void add(){int a,int b}
public int add(){float a,float b}
2、类与类的继承关系主要体现与代买的重用,减少代码的冗余。它是指利用现有的类创建新的类,并共享现有类的属性和方法,现有类称为父类,新类成为子类。
Public class子类类名 extends 父类类名{}
继承的特性:层次性、单继承性、代码重用性
方法重写:子类继承父类,子类定义一个和父类方法名相同、参数列表相同、返回类型相同的方法。
自动转型:子类的对象自动转型为父类的对象(如果转型后的对象调用方法,这个方法如果在子类重写了,则执行的是重写后的方法,否则,调用的父类的方法)
多态:多个同一个类型的对象,调用通过一个方法,执行过程不一样
子类:
public class A extends B{
public void f(){
System.out.println("执行了A类的f方法");
}
}
父类:
public class B {
public void f(){
System.out.println("执行B类的f方法");
}
}
测试类:
public class Test {
public static void main(String[] args) {
B c1=new A();
B c2=new B();
c1.f();
c2.f();
}
}
运行结果:
执行了A类的f方法
执行B类的f方法