Java 通过 extends 关键字来声明一个类从另外一个类继承而来。
- class 父类 {
- }
- class 子类 extends 父类 {
- }
示例:
- //公共父类
- public class Animal{
- private String name;
- private int id;
- public Animal(String myName, int myid){
- name = myName;
- id = myid;
- }
- public void introduction(){
- System.out.println("Hello,everyone! My name is " + id + "," + name +".");
- }
- }
- //子类
- public class Penguin extends Animal {
- public Penguin(String myName, int myid) {
- super(myName, myid);
- }
- }
- public class Mouse extends Animal {
- public Mouse(String myName, int myid) {
- super(myName, myid);
- }
- }
继承的特性:
继承关键字:
- //implements关键字示例
- public interface A {
- public void eat();
- public void sleep();
- }
- public interface B {
- public void show();
- }
- public class C implements A,B {
- }
- class SuperClass {
- int i = 50;
- }
- class SubClass extends SuperClass {
- int i =100;
- public void showMessage() {
- System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i);
- }
- }
输出:
- super.i = 50,
- this.i = 100
final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
声明类:
- final class类名 { //类体}
声明方法:
- 修饰符 (public, private, void, protected等) final返回值类型方法名 () { //方法体}
子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
如果父类有无参构造器,则在子类的构造器中用 super 调用父类构造器不是必须的,如果没有使用 super 关键字,系统会自动调用父类的无参构造器。
来源: http://www.bubuko.com/infodetail-1977789.html