今天我的老师突然为了我一句重写与重载的区别与定义?
抽象类与接口的却别与定义?
我想了想,果然还是忘了不少,于是我又从新查找资料,又学了一遍:
首先是重载:
- 方法名相同
- 可static也可非static
- 参数数量可以不相同
- 返回值可以不同
重写:
重写是用于子类中,子类重写父类的方法
- 父类方法为private(私有)不能重写
- 父类方法为static(静态)不能重写
重写失败情况:
- 子类重写父类方法时,访问修饰符必须大于等于父类方法
- 子类重写父类方法时,返回值类型要大于等于父类方法
- 子类重写父类方法时,异常抛出要小于等于父类方法
- 参数类型、个数必须严格相同与父类
一个小案例:
小明的父亲是亿万富翁
小明父亲有一个使用亿万资产的方法
小明自己去定义如何使用亿万资产
这便是重写
以上便是我对他俩的理解,也许不够深,但是一步一步加强,下面是我对抽象类与接口的理解
抽象类:
package javaEE;
public abstract class f2 {
int name = 0;
public f2(int name) {
this.name = name;
System.out.println("抽象类可以有构造方法");
}
public f2() {
}
public static void text1() {
System.out.println("抽象类的普通方法");
}
public abstract void text2();
}
- 可以拥有普通方法、变量,使用时需要继承或import导入
- 拥有构造方法
- 可拥有抽象方法,只能被子类重写!
- 抽象类不能被直接实例化,只能继承
并且被凑抽象的方法不可以使用以下的修饰符:
filan不能使用,它是不可改变
private不可使用,它是私有的,违背的抽象类的定义
static 不能使用,抽象类都没被继承实现,如何加载到内存中使用?
接口:
我认为,接口的出现就是为了实现java的多继承!就是一个完完全全的抽象类。
1.接口中可以使用静态方法,与抽象类不同的时,本方法无法直接调用,需要使用接口进行调用
2.变量默认修饰公共静态并且不可改变:public static final
3. 方法默认公共抽象:public abstract
4.接口不能实例化,只能实现
5.一个类可以多实现接口
上次我也写了一点对接口的理解: