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

来源:互联网 发布:mac如何卸载阿里旺旺 编辑:程序博客网 时间:2024/05/16 01:46


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类中只有重写的这个方法,继承而来的这个方法倍覆盖了











0 0
原创粉丝点击