一.包是什么?
包允许将类组合成较小的单元(类似于文件夹),使其易于找到和使用相应的类文件 包有助于避免命名冲突。
声名一个包的语句必须写在类的第一行。
package 包名;
如果要使用java中存在的包,可以使用import语句导入包。
格式为:
import 包名.类名
二.什么是继承?
继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
比如:
继承的语法为:
public calss 子类名 extends 父类名 {
//类定义部分
}
注意:java中的继承为单继承,即一个子类只能有一个直接的父类。
三.什么是重载?什么是重写?
重载:是指一个类中的多个方法可以具有相同的方法名,但这些方法的参数必须不同,在执行时可以根据其参数个数与类型来判断要调用此方法是哪一种操作。
重写:子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重载与重写的区别:
区别点 | 重载方法 | 重写方法 |
---|---|---|
参数列表 | 必须修改 | 一定不能修改 |
返回类型 | 可以修改 | 一定不能修改 |
异常 | 可以修改 | 可以减少或删除,一定不能抛出新的或者更广的异常 |
访问 | 可以修改 | 一定不能做更严格的限制(可以降低限制) |
四.什么是多态?
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。
instanceof用法:
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值(true 或者 false)来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
例题:
package qaz;
import wsx.boy;
public class people{
String name;
String sex;
int age;
public void talk(){
System.out.println("我是people");
}
public void run(double sd){
System.out.printf("我跑步的速度是%s",sd);
}
}
package wsx;
import qaz.people;
public class boy extends people{
String sex="男";
String hobbyString="电子游戏";
public void talk(){
System.out.println("我是boy");
}
public void talk(String h){
System.out.printf("我是boy,我喜欢%s",h);
}
}
public static void main(String args[]){
people p=new boy();
if (p instanceof boy) {
((boy) p).talk("下棋");
}else {
((boy)p).talk();
}
}