方法重写
导包:为了调用不同包下面的类的时候,选择写全路径太麻烦了
import 包名.包名.文件名(import com.dd.Teachar)
public 的访问权限比 private(这是一个私有的) 高
父类中用private写的私有的方法,子类中不能调用,不能被重写
方法重写时,子类的访问 权限不能比父类的低
@Override 是用来检查重写方法的正确性,即就是用来判断子类中的方法名字是否和父类中的名字一样
方法重载是在一个类中的,方法名字相同,但是形参不同;
方法重写是子类继承父类的过程中,会对父类的方法进行修改调用的方法,叫做方法重写
数组
int[] arr=new int[3];
//左边 int:需要创建的数组中的元素类型为int类型;[]:这是一个数组;arr:数组的名称
//右边 new:为数组申请存储空间;3:数据中的元素个数;int:需要创建的数组中的元素类型为int类型;[]:这是一个数组
有返回值的是要接收的:int(接收对象的类型) java(接收名字) = bb(max)(表示接收返回的值)
成员变量是:类中方法外设置的变量; 在堆内存; 有初始值
局部变量是;方法中的变量;在栈内存; 没有初始值,调用用时需要赋值
集合框架
线性表:(线性结构---数组){
vector:向量 他是一个可变对象数组,是可变的,是一个对象数组
队列(queue):他是一个集合框架中的一个;就是可以使用这个队列存储数据;可以实现你的数据先进先出
栈(stack):他是一个集合框架;
list(他就是用来存储数据的):他的实现有很多方法;可以通过数组和链表来存储数据;数据可以重复{
add(添加元素)、set(需要替换元素的下标,替换元素)、remove(删除)
}
set(里面只能放入不重复的数据):若放入重复数据,也只会有一个;他的底层会进行比较;
map:
}
泛型:就是在我们当前的集合中指定一个类型;泛型可以是三种:泛型类;泛型接口﹔泛型方法;参数化类型
修饰符
1、权限修饰符
有private , 默认 , protected , public 四种修饰符;
下面是四种权限修饰符的访问情况:
private只能是本类使用,public 都能使用,默认的修饰符只能在同一个包中被访问;
protected在同一个类中都能被访问,在不同类的子类中也能被访问,但是不同包的无关类不能对其访问
2、状态修饰符
-
1、final(最终态)
-
final 关键字是最终的意思,可以修饰成员方法,成员变量,类;
-
final修饰的方法是最终方法,是不可以被重写的;
-
final修饰的变量是常量,不能再被赋值;
-
final修饰的类是最终类,不能继承,不能有子类;
-
变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
-
变量是引用类型: final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
-
-
2、static(静态)
-
static 关键字是静态的意思,可以修饰成员方法,成员变量;
-
被类的所有对象共享的用静态方法修饰,列子:创建一个学生类,有两个学生的学校相同,学校用静态方法,名字和年龄每个学生不一样,则不需要用静态方法
-
static 修饰的成员方法,成员变量只能访问静态的成员方法,及静态成员方法只能访问静态成员
-
多态
1、多态的前提和体现
-
有继承/实现关系
-
有方法重写
-
有父类引用指向子类对象
2、多态中成员访问特点
-
成员变量:编译看左边,执行看左边
-
成员方法:编译看左边,执行看右边
3、转型
-
有向上转型和向下转型两种
-
向下转型:是在正常情况下,父类是无法调用子类的方法,这个时候就需要对其用向下转型;
例:
Anima a=new Cat(); a.A(); // a.tt();//父类无法调用子类中的方法; //我们运行向下转型的方法,来调用子类的方法; Cat cat=(Cat) a; cat.tt();
-
抽象类
-
抽象类:一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类,
-
如何定义一个抽象类和抽象方法: 是通过加入 abstract 实现的
-
抽象类不能直接进行实例化,他要用多态的形式来创建实例化对象,抽象类的子类必须对抽象类中的抽象方法进行重写操作,或者是把子类也定义为抽象类
-
限定子类必须使用抽象方法
接口
接口的特点
-
用修饰符 interface 修饰: public interface 接口名(){}
-
类实现接口:用implements表示,及public void 类名 implements 接口名(){}
-
接口的实例化:参照多态的方法;
-
接口中的成员变量是常量,是没有构造方法,一个类如果没有父类,那他会默认继承Object;接口里面只有抽象方法,它有默认修饰符 public abstract来修饰方法,有public static final 来修饰成员变量;
-
接口与接口之间可以实现多继承,类也可以实现多接口
形参与返回值:
1、实体类作为形参和返回值:
-
方法的形参是类名,其实需要的是该类的对象
-
方法的返回值是类名,其实返回的是该类的对象
2、抽象类作为形参和返回值:
-
方法的形参是抽象类名,其实需要的是该抽象类的子类对象
-
方法的返回值是抽象类名,其实返回的是该抽象类的子类对象
3、接口名作为形参和返回值:
-
方法的形参是接口名,其实需要的是该接口的实现类对象
-
方法的返回值是接口名,其实返回的是该接口的实现类对象
内部类:
1、成员类部类:在成员变量下面在创建一个类,内部类中的方法,在本类调用的时候需要创建一个对象才能使用内部类方法,其他类不能直接调用内部类的方法。只能靠类自己创建一个方法调用内部类方法,然后在调用该类的方法,来实现调用内部类的方法。
2、局部内部类:是指在类里面的方法中在创建一个类,这也是不能直接调用,需要在方法中创建一个对象,来调用内部类中的方法
3、匿名内部类:是局部内部类的一种特殊格式,它的本质就是一个对象,可以直接使用;
属于小白个人自己弄出来的,还请大家多多指点。