Java基础——自学习使用(继承、方法的重写与重载)

一、继承

1、什么是继承?

        继承是面向对象三大特征之一,java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类成为子类 继承使用关键字extends关键字来描述

2、本质

        继承的本质就是代码的复用,子类可以使用父类已经写好的代码,如此子类就无需重新编写此类代码了。子类可以调用所继承父类的代码,而父类无法调用子类的代码。

3、案例

      父类

      子类

     测试类

4、继承规则

①在java继承java继承
层次当中不能互相继承。

②一个类可以被多个类当父亲,单一个子类只能继承一个父类

注:Java的继承仅支持单继承

二、方法的重写和重载

(一)

(1)方法是有访问权限的

        访问权限有四种分别是:public 公共的、protected受保护的、不写(注意是子类但是不同包也是不可以访问的)、private私有的

(2)方法必须标注返回类型

         方法必须写上返回数据的类型,而且return返回的数据必须是该类型。如果不需要返回数据就写void在代码中直接写一个return就行。

(3)在同一个类中,方法名可以相同但方法的签名不能相同

          方法签名=方法名+参数列表的类型

(4)方法名可以使用其他的关键字进行修饰,比如static和final,ta们有着不同的意义。

(二)

1.方法重载定义

        方法的重载,发生在本类当中,在同一个类当中方法名相同但是参数列表不同,就是方法的重载。 调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。 方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。

2.方法重写定义

        方法的重写,发生在父子类当中,子类重新实现父类方法的功能。具体是指子类定义了一个与其父类中具有相同名称、参数列表和返回类型的方法,并且子类方法的实现覆盖了父类方法的实现。 

3.方法重写的作用

        继承的本质时代码的复用,在复用的过程当中父类的方法的实现不一定适用于子类,在这个时候涉及到方法的重写。方法重写之后,子类对象调用的是重写后的方法。

4.两者的区别

        ①

        方法重写:发生在有继承关系的子类和父类之间。子类通过重写父类的方法,提供自己的实现逻辑。

        方法重载:发生在同一个类中。在同一个类中定义多个同名但参数列表不同的方法。

        ②

        方法重写:子类重写的方法与父类被重写的方法具有完全相同的参数列表(包括参数的个数、类型和顺序)。

        方法重载:方法名相同,但参数列表不同,这包括参数的个数、类型或顺序的任意一项不同。

三、例题

1.如何代码输出的结果是什么?(  )
public class Test {
public int aMethod( ) {
static int i = 0;
i++;
return i;
}
public static void main (String args[]) {
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
A. 0 B. 1 C. 2 D.编译失败

D static不能修饰局部变量

2.以下代码的输出结果是什么?( )
class Base {
Base() {
System.out.print(“Base”);
}
}
public class Alpha extends Base {
public static void main( String[] args ) {
new Alpha();
new Base();
}
}
A. Base B. Base Base C. 编译失败. D. 代码运行但没有输出. E. 运行时抛出异常

B 先找到main函数,运行new Alpha,然后没有发现static块,去执行父类,输出"Base",然后运行new Base,再输出"Base"

static代码块只会执行一次

static不能作用于类

5.以下关于static代码块的说法哪个是错误的?
A. static代码块在类加载到JVM时执行(所说的堆、栈、方法区就是由JVM建立的)
B. 一个类中可以有多个static代码块,它们按照在类中出现的顺序执行(正确)
C. static代码块在每次创建类的实例时都会执行(错误,只会执行一次)
D. static代码块通常用于初始化静态变量

答案:C

 

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值