语法
通过extends实现对类的继承
例如
public class person{
int age;
void speak();
}
public class student extends person{ //student类继承person类
}
super注意点
1、super调用父类的构造方法,必须在构造方法的第一个
2、super必须只能出现在子类的方法或者构造方法中
3、super和this不能同时调用构造方法
VS this注意点
代表的对象不同:
this:本身调用者这个对象
super:代表父类对象的应用
前提:
this:没有继承也能使用
super:只能在继承条件才可以使用
构造方法:
this():本类的构造
super():父类的构造
重写:
需要有继承关系,子类重写父类的方法
1、方法名必须相同
2、参数列表必须相同
3、修饰符:范围可以扩大但不能缩小: public > Protected > Default > private
4、抛出的异常:范围可以被缩小,但不能扩大
重写,子类的方法必须和父类一致,方法体不同
为什么需要重写?
父类的功能,子类不一定需要或者不一定满足
Alt + Insert :override
instanceof 关键字,若两者是父子关系则为true,否则为false
例如:Object instanceof String //true
Person instanceof Student //true
Person instanceof String //false
抽象类
抽象类的所有方法必须要由子类实现
1、抽象类不能new出来,只能靠子类去实现
2、抽象类中可以写普通的方法
3、抽象方法必须写在抽象类中
## 接口的定义与实现
定义的关键字:interface,接口都需要有实现类
类可以实现接口 implements 接口
实现了接口的类,就需要重写接口中的方法
Java是单继承的,但是可以利用接口实现多继承
例如:
//定义一个接口
public interface UserService{
void add(String name);
void delete(String name);
void update(String name);
void query(String name);
}
//再定义一个接口
public interface TimeService{
void timer();
}
//定义一个类
// 从侧面实现了多继承↓👇
public class UserServiceImpl implements UserService,TimerService{
//接口UserService中的方法
@Override
public void add(String name){
}
@Override
public void delete(String name){
}
@Override
public void update(String name){
}
@Override
public void query(String name){
}
//接口TimerService中的方法
@Override
public void timer(){
}
}
作用:
1、约束
2、定义一些方法,让不同的人实现
3、public abstract
4、public static final
5、接口不能被实例化,接口中没有构造方法
6、implements可以实现多个接口
7、必须要重写接口中的方法