java学习之路 ——继承与多态

    技术2023-07-24  65

    继承(extends):     子类(派生类)继承父类(基类)的属性和方法     一个类只能有一个父类,但是一个父类可以拥有多个子类         判断: 在java里面继承都是单一继承     私有的属性和方法不能继承

    权限     public         所有对象都能访问     protected    同包可以访问。继承关系可以访问     缺省            同包可以访问。     private        只有这个类里面可以直接访问的属性,其他类访问不到

    super()     调用父类的属性和方法,或者,直接调用父类的构造函数     super(),出现了那么必须放在第一位     无论你写不写super(),他都会执行,都会去调用父类的构造函数           方法重写:在父类和子类里面:     当子类里面有一个方法和父类的方法一模一样(方法名+参数+返回值权限一样或者提高)的时候,我们就称为子类重写了父类的方法      抽象方法:当一个对象里面的方法,不需要或者无法写实现的时候,我们就可以将这个方法定义为抽象方法 abstract     抽象类:当一个类里面有一个抽象方法的时候,那么这个类就必须定义为抽象类                    抽象类无法直接实例化

    接口:当一个抽象类里面的所有方法都是抽象方法的时候,我们可以将这个抽象类定义成 接口     对于接口,只能接口继承接口,类要实现接口(implements)     接口里面的变量默认为静态变量 默认final     接口可以多继承           什么是多态:  同一种形状 ,不同的体现     特点:可扩展性极强。     静态多态:编译时多态 ->方法重载     动态多态:运行时多态 ->方法重写

     

    关于多态:

    1.使用父类类型的引用指向子类的对象

    2.改引用只能调用父类中定义的方法和变量。

    3.如果子类中重写了父类种的一个方法,那么在调用的时候,将会调用子类中的这个方法。(动态链接,动态调用)

    4.变量不能被重写,重写的概念只针对于方法。

     

    例题:

    编译运行如下Java代码,输出结果是( )。

    class Base {           public void method(){                        System.out.print ("Base method");            } } class Child extends Base{                 public void methodB(){                        System.out.print ("Child methodB");                 } } class Sample {         public static void main(String[] args) {                Base base= new Child();                base.methodB();          } }

    A.Base method

    B.Child methodB

    C.Base method Child MethodB

    D.编译错误

     

    选D,因为他调用了子类中父类没有的方法。

    Processed: 0.010, SQL: 10