父类引用指向子类对象是什么意思_面向对象初步

一.static关键字

  在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:

  1. 为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。

  2. 对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

  3. 一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员。)

  4. 在static方法中不可直接访问非static的成员。

核心要点:

static修饰的成员变量和方法,从属于类。

普通变量和方法从属于对象的。

66d0f29b75b820665e02d6998f2e8510.png

8309a5de1a8cbb75964b112c57af736f.png

运行结果:

02ee57deb4a7d71561020b227e0de24e.png

二.java中的数据参数传值机制

Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。

· 基本数据类型参数的传值

  传递的是值的副本。 副本改变不会影响原件。

· 引用类型参数的传值

  传递的是值的副本。但是引用类型指的是“对象的地址”。因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值,也意味着原参数指向对象的值也发生了改变”。

08ed6d0ebb87282bd5025f4274a8f2d5.png

d66a32f022f973dd743aa57b2d65b1cb.png

三.package和import

包机制是Java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于文件夹对于文件的作用。

我们通过package实现对类的管理,package的使用有两个要点:

  1. 通常是类的第一句非注释性语句。

  2. 包名:域名倒着写即可,再加上模块名,便于内部管理类。

注意事项:

  1. 写项目时都要加包,不要使用默认包。

  2. com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。

JDK中的主要包有如下这些:

77603cd0d146d9e4b06626f801df219a.png

JDK中常用的包:

* 除了java.lang下的类或接口可以不用导包直接使用外,其他包下的类或接口必须导包后才能使用。

* 1.java.lang包:java核心的类和接口。可以直接使用,无需导包。

* 2.java.awt包/javax.swing包:窗口相关的类或接口

* http://3.java.io包:输入输出相关的类或接口

* http://4.java.net包:网络通信相关的类或接口

* 5.java.utll包:工具包

* 6.java.sql包:数据库操作相关的类和接口

*

* 导包:快捷键ctrl+shift+o

* 1. import 包名.类名;

* 2. import 包名.*;(将该包下的所有类全部导入)

如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。import后,便于编写代码,提高可维护性。

注意要点:

  1. Java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。

  2. 如果导入两个同名的类,只能用包名+类名来显示调用相关类:

91ab2cdf06273f9797037545ab00caa8.png

四.面向对象的继承

继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels)。

从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如:

5e2f67402307c0c7630b8eb3ef66bd3e.png

上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,如果新定义一个Student类,发现已经有Person类包含了我们需要的属性和方法,那么Student类只需要继承Person类即可拥有Person类的属性和方法。

  • instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,返回false。

d4b09112552a13d24e7bcc33b2011783.png

220b96506d9f2f5b45188a92c7dfb75d.png

968b9a4b4d27e721cfc9cedef60eacbb.png

五.方法的重写

子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。

方法的重写需要符合下面的三个要点:

1.“==”: 方法名、形参列表相同。

2.“≤”:返回值类型和声明异常类型,子类小于等于父类。

3.“≥”: 访问权限,子类大于等于父类。

144e184fac591df347f0cef7d18e75a8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值