快速学会Java面向对象三大特征
Posted 另一个隐藏的世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速学会Java面向对象三大特征相关的知识,希望对你有一定的参考价值。
来了来了,我又来了!
今天我们学习Java中继承与多态!
目录
1.包
2.继承
3.多态
4.重写和重载
1.包的意义:在Java中我们有时需要用到大量的类,我们为了确保能对类进行分门别类的管理,我们就需要把类存储在包里,Java的类文件可以存储在不同的包里。
包简单的来说就是文件夹,里面放的是我们创建的类文件!
除Java提供的用于程序开发的系统类被存放在各种系统包之外,开发人员也可以创建自定义包。
语法:
package<包名>
注意:声明一个包的语句必须写在类中的第一行。
例子:我们创建一个hello类,然后把它放进qqq包里
我们可以直接使用eclipse直接创建一个qqq的包,然后在qqq包里创建一个hello的类!
a.包的导入:在Java中如果我们在一个包的需要用到在另一个包中的类,那么我们就需要导入那个包。
语法:
1. import<包名>.<类名> 例如:import qqq.hello;//导入qqq包中的hello类
2. import qqq.*; //导入qqq包中所有类
注意:*代表所有类
例子:假如我们需要在eee包 的what类中调用qqq包的hello类
注意:a.一个包中的成员的访问权限为public,那么才能被其他包中的类所引用
b.如果缺省访问权限成员,就只能被同一个包中的类访问,不能被其他包中的类访问
2.继承
继承:继承是面向对象程序设计的一个重要特征,它是通过继承原有类派生出的子类进而构造出更为复杂的子类。而子类既可以有新定义的行为特征,又继承了原有类的行为特征。
通俗一点讲就是子类继承父类!,继承父类后,父类中属性,方法等都会在子类中!
继承的作用:在Java中我们要创建很多的类,而有些类是具有相同地特征 ,为了减少 大量重复的代码,我们就把那些相同特征的 放在一个类中(父类),然后其他类(子类)在继承父类 !
语法:
[修饰符] class 子类名[extends 父类名] {
//类定义部分
}
注意:a.在使用继承的特征时,需要注意的是,子类可以继承父类中访问权限为public、protected、default的成员变量和方法。
b.java中的继承为单继承,即一个子类只能有一个直接的父类
c.子类在调用父类的时要使用super
3.多态(多个类继承同一个类时)
多态:通过同一个声明的对象指向不同的实际的对象,执行同一个操作产生不同的结果
在多态中需要引用变量的强制类型转换:
a.基本类型 之间转换只能在数值类型之间转化,而引用类型之间的转化需要在具有继承关系的两个类型之间转化。如果是没有任何继承关系的类型,则无法进行类型转换,否则编译时会出现错误
b.instanceof运算符:.instanceof运算符的前一个操作数通常是一个引用类型变量,后一个操作数通常是一个类,它用于判断运算符前面的引用变量是否是运算符后面的类型或其子类型的实例,如果条件成立则返回turn,否则返回false。
4.重载和重写
重载(同一个类中):参数,数据类型不同 方法名相同
重写(子类与父类之间):参数,方法名等其他都相同
注意:重写的访问修饰符子类的不能比父类高
说了这么多,继承,多态,重写和重载到底怎么用呢?
接来我们做一个项目需要用到我们今天学的继承,多态,重写和重载
例:
那我们怎样实现这个项目呢?就需要我们今天学的知识了
答案:
下面我们看下运行结果:
上述项目很好的解释了今天的内容:
a.首先两个类不在一个包里,我们Boy继承People需要用到导入People的包
b.然后People类中的talk方法和Boy类中的talk方法是属于重写
c.Boy类中的talk()方法和talk(String hobby)是属于重载
d.if(p instanceof Boy) {//判断
Boy o=(Boy) p;
o.talk("电子游戏");
}else {
p.talk();
}
就是多态的体现!
****特别注意:在Java中 父类 对象名=new 子类();创建对象,引用方法时 编译器看的是父类有没有这个方法,而运行时运行的是子类的方法
所以上述Boy o=(Boy) p;这一步是将p类型转化为Boy类型,转化后编译器看到的就是Boy里的talk方法
ok,上述就是博主今天讲的全部内容,关于Java另一个特征封装,博主在上一篇文章中写了,大家有兴趣可以去看看。
大家在学习时一定要注意博主写的变色字体,看明白变色字体的内容!
好了,今天的内容到此结束,需要的可以收藏一下等下别找不到了,下期博主会带来新的知识!!!
关注博主,不迷路哦!白白!
以上是关于快速学会Java面向对象三大特征的主要内容,如果未能解决你的问题,请参考以下文章