包
1.命名方式:一般为小写字母,采用公司网站倒叙
2.概念:包是组织类的一种方式
3.作用:保证类的唯一性
4.包的导入:
1)import导入
import java.util.Date; //导入Date类
import java.util.*; //导入util目录下所有的类
2)静态导入
使用 import static 可以导入包中的静态的方法和字段
import static java.lang.System.*;
public class Test {
public static void main(String[] args) {
out.println("hello");
}
}
5.包的访问权限
继承
1.作用:为了代码的复用
2.基本语法:
class 子类 extends 父类 {
} //子类继承了父类除构造方法以外的所有东西
3.super关键字
super 表示获取到父类实例的引用
1)使用了 super 来调用父类的构造器
2)使用 super 来调用父类的普通方法
3)super和this的区别
●从概念上看,this访问本类中的属性和方法;super由子类访问父类中的属性和方法
●从查找范围上来看,this先查找本类,如果本类没有就调用父类;super不查找本类而直接调用父类定义
●特殊性,this表示当前对象引用
4.Java只支持单一继承
5.final关键字
1)final修饰一个变量或者字段的时候, 表示 常量 (不能修改)
2)final 关键字也能修饰类, 此时表示被修饰的类就不能被继承(final 关键字的功能是限制类被继承)
6.组合和继承的区别
组合的语义是has-a
继承的语义是is-a
多态(运行时绑定)
1.定义:一个引用能表现出多种不同状态
向上转型
1.父类引用子类对象 父类只能调用父类自己的方法
Cat cat=new Cat();
Animal animal=cat;
2.向上转型发生的时机:
●直接赋值
●方法传参
●方法返回
向下转型
父类对象转成子类对象
使用多态的好处
1) 类调用者对类的使用成本进一步降低
2) 能够降低代码的 “圈复杂度”, 避免使用大量的 if - else
3)可扩展能力更强
方法重写和方法重载
方法重载(overload) | 方法重写(override) |
---|---|
方法名称相同,参数类型或参数个数不同,返回值类型不做要求 | 方法名称相同,返回值类型、参数类型及个数完全相同 |
重写注意事项:
●方法不能是private
●子类的方法权限一定要大于父类方法的权限
●不能是一个静态的方法
重载注意事项:
●方法的返回值类型不影响重载,但是当两个方法名字相同,参数也相同,但是返回值不相同的时候,不构成重载
区别:
1)概念上不同,见上表
2)范围:重载是在一个类中,重写是在继承关系中
3)限制:重写时被覆写的方法不能拥有比父类更严格的访问控制权限