201711671233《Java程序设计》第5周学习总结

                  201711671233《Java程序设计》第5周学习总结

一、教程学习内容总结

这周主要学习了继承,重写,super关键字,final关键字,上转型,抽象类。

 

(一)继承

继承是一种由已有的类创建新类的机制。先定义一个共有属性的一般类,再定义具有特殊属性的子类。父类:被继承。子类:继承而得。

Java不支持多重继承。子类只能有一个父类。

定义子类:class 子类名 extends 父类名

任何类都是Object类的子孙类。

子类的成员变量和方法一部分是自己声明、定义,一部分从父类继承。从父类继承而来的成员变量和方法相当于在子类中声明定义的。

子类和父类在同一个包:除父类是private,其他都能继承。即父类是public、protected、友好,子类都能继承。

子类和父类不在同一个包:子类只继承父类中的public和protected的成员变量和方法。

子类创建对象时,子类的构造方法总是先调用父类的某个构造方法,完成父类部分的创建;再调用自己的构造方法,完成子类部分的创建。

instanceof运算符:左边是对象,右边是类。当左边的对象是右边的类创建的或是其子类创建的对象,instanceof的运算结果是true,否则为false。

多态性指的是父类的某个方法被其子类重写时,可以各自产生自己的功能行为。

 

(二)重写

成员变量的隐藏:子类声明的成员变量的名字和从父类继承来的成员变量的名字相同(类型可以不同),这种情况下,子类会隐藏继承的成员变量。

子类继承的方法只能操作子类继承和隐藏的成员变量。子类新定义的方法可以操作子类继承和新声明的成员变量,但无法操作子类隐藏的成员变量(需使用super操作)。

方法重写:指子类中定义一个方法,这个方法的类型和父类方法类型一致或是父类方法的类型的子类型(子类型指的是如果父类的方法的类型是“类”,那么允许子类的重写方法的类型是“子类”),并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。

重写目的:子类通过方法的重写可以隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。

重写方法可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作被子类隐藏的成员变量和方法。

 

(三)super

如果在子类中想使用被子类隐藏的成员变量或方法,需要使用super。

由于子类不继承父类的构造方法,子类在其构造方法中需使用super来调用父类的构造方法。

 

(四)final

final可以修饰类、成员变量和方法。不能被继承。

final修饰类中的一个方法,这个方法不允许子类重写,不允许子类隐藏可以继承的final方法。

final修饰的成员变量或局部变量是常量,必须指定该值。

 

(五)上转型对象

把子类对象的引用赋给父类对象,称父类对象是子类对象的上转型对象。

上转型对象的实体是子类负责创建的。

上转型对象特点:

1.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。

2.上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或重写的实例方法。

注:

1.不可以将父类创建的对象的引用赋值给子类声明的对象。

2.如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。

 

(六)抽象类和抽象方法

用abstract修饰的类称为abstract类(抽象类)。

用abstract修饰的方法称为abstract方法(抽象方法)。

抽象类中可以有抽象方法,可以没有抽象方法。非抽象类中不可以有抽象方法。

抽象方法只能声明,不能实现(没有方法体),不能用final和abstract同时修饰一个方法或类。static不能修饰抽象方法,即抽象方法必须是实例方法。

abstract类不能用new运算符创建对象。

如果非抽象类是抽象类的子类,它必须重写父类的抽象方法,即去掉abstract,给出方法体。一个抽象类是抽象类的子类,它可以重写父类的抽象方法,也可以继承父类的抽象方法。

可以有abstract类声明对象,该对象可以成为其子类对象的上转型对象,该对象就可以调用子类重写的方法。

抽象类中可以没有抽象方法。抽象类只能被继承。

 

二、教程学习中的问题和解决过程

一开始不太理解上转型对象和关键字super的用法,后来多看几次书本和书上的代码例题,就慢慢地大概理解了。

 

三、学习进度条

 

代码行数

(新增/累计)

博客量

(新增/累计)

学习时间

(新增/累计)

目标

2500行

10篇

200小时

第一周

30

1

10

第二周

30/60

1/2

10/20

第三周

30/90

1/3

10/30

第四周

30/120

1/4

10/40

第五周

30/150

1/5

10/50

 

四、参考资料

Java2实用教程(第5版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值