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



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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值