**【简介】:**在Java中使用extends关键字来表示一个类继承另外一个类。
【语法】:
public class Sub extends Base{}
【案例演示】:
public class Base {
public int a;
private int b;
int c;
protected int sum(int a, int b) {
return a + b;
}
}
public class Sub extends Base {
public void sub() {
a = 2;
b = 2;
c = 2;
sum(1, 2);
}
}
【图解错误】:

【注意事项】:
【应用场景】: 类的功能有多种实现方式,选用那种方式,取决于调用者给定的参数。
【满足重载的条件】:
【应用场景】: 当父类中的方法不满足子类使用要求的时候,需要对父类中的方法进行覆盖。
【方法覆盖满足的约束条件】:
【正确代码演示】:
public class Base {
public void method() {
}
}
public class Sub extends Base {
public void method() {
}
}
【错误分析】:

【错误代码演示】:
public class Base {
public void method() {
}
}
public class Sub extends Base {
private void method() {//子类缩小了父类的方法的访问权限
}
}
【错误分析】:

【错误代码演示】:
public class Base {
public static void method() {
}
}
public class Sub extends Base {
public void method() {//编译出错
}
}
【错误分析】:

【正确代码演示】:
public class Base {
public static void method() {
}
}
public class Sub extends Base {
public static void method() {
}
}
【正确代码演示】:
public abstract class Base {
abstract void method1();
abstract void method2();
}
public abstract class Sub extends Base {
//实现并且扩大访问权限
public void method1() {
}
//重新声明父类的抽象方法,并没有实现
public abstract void method2();
}
public class Base {
public void method() {
}
}
public abstract class Sub extends Base {
public abstract void method();
}
【相同点】:
【不同点】:
【定义】:
用父类类型或父类接口来接收子类对象。即一个对象在运行时的多种状态。
【使用注意事项】: