包
作用:
1.解决类的同名问题
2.允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件3.更好的保护类、属性和方法
2.命名规范
●包名由小写字母组成,不能以圆点开头或结尾,如:
package mypackage
包名之前最好加上唯一 的前缀,通常使用组织倒置的网络域名
包名后续部分依不同机构内部的规范不同而不同
3.用Eclipse创建包
分别创建包和类
创建类的过程中创建类所在的包
4.导入包
为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类
import 包名.类名
例如:
import java.uti1.*; //导入java. uti1包中所有的类
import classandobject . school;//导入指定包中的指定类
继承
◆继承:一种由已有的类创建新类的机制。
◆解决:代码重用,派生新的子类,扩展 *** 作功能
◆格式:
class子类extends父类
{
......
}
◆父类(超类) :一个共有属性的一般类
◆子类(派生类) :是父类的特例
◆注意
①子类继承父类的属性和方法
②子类不能继承父类的构造函数
③子类隐含调用了父类的构造函数
④继承需要满足:子类is a父类的逻辑要求
⑤在java中, 子类的对象可以替换父类对象
⑥子类只有-一个直接父类,父类可以有多个子类
◆继承的限制
①Java不允许多重继承,允许多层继承
②子类继承父类的全部 *** 作,private *** 作隐式继承, 非private *** 作显式继承
③子类对象构造前,默认调用父类的无参构造方法
◆覆盖(Overrid):子类定义的属性和方法与父类同名
①方法的覆盖:方法名、返回类型、参数类型、顺序及个数完全相同。
访问权限只能放大或相同;
不能抛出新的异常
②属性的覆盖:属性名称相同,父类的成员变量隐藏
多态
1.定义:
多态:同一个引用类型,使用不同的实例而执行不同的 *** 作
2.使用多态的思路
●编写具有继承关系的父类和子类
●子类重写父类方法
●使用父类的弓|用指向子类的对象0向上转型
(注意:以上为实现多态的三个要素)
3.实现多态的两种形式
●使用父类作为方法形参实现多态
●使用父类作为方法返回值实现多态
4.父类到子类的转换
●向下转型(强制类 型转换)
●instanceof运算符
对象instanceof类或接口
抽象类
◆抽象类:没有具体的实例对应
◆格式:
[访问权限修饰符] abstract class 类名
{
[成员变量的定义]
[成员方法的定义]
}
◆包含:成员变量、构造方法和具体方法
◆抽象类不能进行实例化,即不能创建对象
new抽象类名();
◆可以声明变量,如:抽象类名aTest;
◆抽象类可以没有抽象方法,但含有abstract方法的类必须定义为abstract类。
◆抽象方法
[访问权限修饰符] abstract 方法名(参数列表);
◆注意:抽象方法没有方法体。
没有抽象的构造方法
抽象类和抽象方法不能被final修饰。
◆类中的非抽象方法和抽象方法
非抽象方法:子类中该方法的作用和代码基本相同
抽象方法:子类中该方法根据自己情况的不同会有不同的实现
◆继承抽象类: extends
如果没有实现所有的抽象方法,子类为抽象类
子类继承抽象类,其实现的方法的权限必须大于或等于父类该方法的权限
接口
◆接口:定义一种规范,多个方法的声明
◆格式:
[public] interface 接口名
{
[常量的定义]
[抽象方法的定义]
}
接口名- -般使用“-able"形式的形容词
◆注意:
接口不能进行实例化,不能用new接口名()
可以声明变量
Interface Testable test;
方法的默认修饰符是public abstract
变量的默认修饰符public final static
◆实现接口的关键字: implements
声明为一-般类:实现接口所有方法
声明为抽象类:存在没有实现的抽象方法
一个类可以实现多个接口,接口之间用“,”分开
实现接口也是一一种继承, 继承接口中的常量
◆接口实现多继承效果:一个类可以实现多个接口,继承所有实现接口中的静态常量,以及所有抽象方法。
例:定义-一个工作接口Workable,声明一个work()方法
定义一个接口GoHomeable,声明-一个traffic()方法
定义一个Student类,包含- - 个name属性,实现上述两个接口,学生的工作是Study,回家的交通工具是火车train。在main(方法中,声明-一个名为张三的学生s,调用work ()和traffic()方法
◆创建类时,可以让这个类既有父类,又实现某些接口
◆定义- -个Display类,声明-一个 显示提示信息的方法heading() ;◆修改上述例子,使Student实现接口时,同时继承
Display类。在main() 方法中,输出信息之前调用heading()方法。
◆super关键字
◆在子类中使用父类的非private类型的变量和方法super.属性super.方法()
◆在子类的构造方法中访问父类的构造方法位置:非注释语句的第一行
super():父类中有无参数的构造方法
◆final关键字:修饰类、 方法、变量
final修饰类:不能被继承
final修饰方法:不能被重写
final修饰成员变量:常量,赋初值,且不能改变final修饰局部变量:只能被赋一次值
final修饰方法中的参数:该参数的值不能被改变
◆object类
Object 是Java类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。由于 Java 所有的类都是 Object 类的子类,所以任何 Java 对象都可以调用 Object 类的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)