第二节类的继承、方法的重载、方法的重写、对象的引用和构造器

    xiaoxiao2021-03-25  105

    

    1.对象的引用

    Student是一个类

    Student stu;//定义一个变量 stu=new Student();//将等号右边创建的对象的引用(地址)赋给stu,也就是stu存放的是地址对象存放在栈中,堆中存放的是创建对象(new Student())后类中的属性和方法,堆前面还有地址。

    例如:

    stu name="李四";//在堆中寻找stu存放的地址,将找到的堆空间中的name改为"李四"对象的引用:

    Student stu=new Student();//在堆中开辟一个空间 Student stu2=new Student();//在堆中开辟另一个空间 stu.name="张三";//stu指向的空间中的name=“张三” stu2.name="李四";//stu2指向的空间中的name=“李四” stu=stu2;//stu2指向的地址赋给stu,即stu与stu2指向同一块空间,即stu2指向的空间 stu2.name="王五";//stu2指向的空间中的name=“王五” System.out.println(stu.name);//输出王五 System.out.println(stu2.name);//输出王五2.构造器(构造函数/构造方法)

    格式:public 类名(参数列表){}

    (参数列表可以为空)

    例如:定义一个Student类

    public class Student{ }//该类会有一个默认的无参构造方法public Student(){} 3.方法重载:

    定义:在同一个类中多个方法的返回类型和方法名一样,参数个数、参数类型不一样或者参数个数和类型一样但定义的顺序不一样

    例如:

    1)普通方法

    public class Student{ public void eat(){} public void eat(int a){} public void eat(String a){} public void eat(int a,String b){} }2)构造方法

    public class Student{ public Student(){} public Student(int a){} public Student(int a,String b){} }4.继承

    格式:

    public class 子类名 extends 父类名{},继承弗雷德所有非私有属性和方法,但是父类的构造方法不被继承

    注意:一个类只允许有一个直接父类 ,但是允许多级继承

    例如:

    public class A extends C{//A类直接继承C类 } public class B extends A{//B类直接继承A类,C类是B类的祖先类,这就是多级继承 } public class C{ public String a; public void eat(){ System.out.println("C类的方法"); } }5.方法的重写

    定义:

    继承来的方法的返回类型、方法名、参数类表完全与父类的方法相同,只有方法体内的内容不同

    子类重写了父类的方法后,继承来的方法就被重写的方法覆盖了

    例如:(还是上面的A、B、C三个类)

    在A类中重写eat()方法

    public void eat(){ System.out.println("A类的方法"); }//A类中只有重写的这个方法,继承而来的这个方法倍覆盖了

    转载请注明原文地址: https://ju.6miu.com/read-7452.html

    最新回复(0)