extends的意思是”扩展“。子类是父类的扩展,使用关键字extends来表示。
Java里,一个类只能继承一个父类。
继承是类与类之间的一种关系,此外还有依赖、组合、聚合等。
public class Student extends Person{ /*Person extends Object*/
...
}
子类继承了父类,就会拥有父类的全部方法,而private私有属性及方法无法继承。
在Java中,所有类,都默认直接或间接继承Object类 (Ctrl+H 可以查看类关系)
被final修饰的类,无法被继承(断子绝孙)。
super(); //隐藏代码,默认调用了父类的无参构造,要写只能写第一行
重写:子类的方法必须与父类方法必须一致,方法体不同。
重写是方法的重写,与属性无关
重写方法只与非静态方法有关,与静态方法无关(静态方法不能被重写)
静态方法属于类,非静态方法属于对象
public class B {
public static void test(){ //静态方法
System.out.println("B==>test()");
}
}
public class A extends B{ //继承
public static void test(){
System.out.println("A==>test()");
}
}
public class Application {
public static void main(String[] args) {
//方法的调用之和左边定义的类型有关
A a = new A();
a.test(); //打印 A==>test()
//父类的引用指向了子类,但静态方法没有被重写
B b = new A();
b.test(); //打印 B==>test()
}
}
原文:https://www.cnblogs.com/EA7-King/p/15059291.html