Java 快速入门 知识精简(4)面向对象-继承

 继承


继承的好处:

① 减少了代码的冗余,提高了代码的重复性。

② 便于功能的扩展。

③ 为之后多态性的使用,提供了前提。

继承的格式:

Class A extends B {

        // 继承的格式

}

说明

1)A:称为子类、派生类、subclass

2)B:称为父类、超类、基类、superclass

体现:

1)一旦子类A继承了父类B以后,子类A中就获取了父类B中声明的结构:属性、方法。

特别的:

1)父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只因为封装性的影响,使得子类不能直接调用父类的结构而已。

另外:

1)子类继承父类以后,还可以声明自己特有的属性和方法,实现功能的扩展。

子类和父类的关系:

Java中只支持单继承多层继承

① 一个子类只能有一个直接父类

② 一个父类可以派生出多个子类

正确方式

Class SubDemo extends Demo {

        // ok

}  

错误方式

Class SubDemo extends Demo1,Demo2... {

        // error

}  

说明

1)所有的Java类都直接或间接的继承于java.lang.Object

2)意味着:所有的Java类具有java.lang.Object类声明的功能


方法重写

方法重写:override

重写:子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作

class Animal {
    public void speak() {
        System.out.println("sound");
    }
}

class Dog extends Animal {
    @Override             // 注解:用于明确表示重写 
    public void speak() {
        System.out.println("wo wo");
    }
}

重写的规定

1)子类重写父类的方法名相同

2)子类重写父类的参数列表相同(参数类型和数量)

3)子类重写父类的返回值类型相同或是子类型

4)子类重写父类的访问权限不能比父类中的小

5)子类不能重写父类中声明为 final 的方法

6)子类不能重写声明为private权限的方法

方法重载:overload

类可以包含多个具有相同名称参数列表不同的方法

class Calculator {
    int add(int a, int b) {
        return a + b;
    }

    int add(int a, int b, int c) {
        return a + b + c;
    }

    double add(double a, double b) {
        return a + b;
    }
}

重载的规定

1)方法名相同。

2)参数列表不同(参数的类型、数量或顺序)。

3)可以有不同的返回类型

super关键字

Super理解为:父类的

Super可以用来调用:属性、方法、构造器

Super关键字的使用:

1)super.属性 调用父类中声明的属性

2)super.方法 调用父类中声明的方法

3)super(形参列表) 子类构造器中调用父类中声明的指定的构造器

说明

1)“super(形参列表)”的使用,必须声明在子类构造器的第一行

2)在构造器中,“this(形参列表)” 和 “super(形参列表)不能同时出现

3)在构造器的首行,没有显示的声明this(形参列表)或super(形参列表),则默认调用的是父类中空参的构造器super()

4)在类的多个构造器中,至少有一个使用了super(形参列表),调用父类的构造器。

你可能感兴趣的:(Java,开发语言,java)