Java 继承

本文介绍了Java中的面向对象特性,特别是继承的概念,包括子类如何通过`extends`关键字继承父类的属性和方法。同时,提到了`super`和`this`关键字在区分同名属性时的作用。此外,还讨论了构造方法,说明了子类在创建时如何调用父类的构造方法,并展示了如何显式调用`super`构造父类对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象 - Extends - 继承
面向对象编程中有三个非常重要的特征:继承,封装,多态
类存在父子关系:子类可以直接获取到父亲的成员属性和成员方法
类的继承只能是单继承,一个类只能有一个父类,不能存在多个父类
一个父类可以有多个子类
 // 继承采用extends语法:子类 extends 父类
        Child c = new Child();
        System.out.println(c.name);
        c.test();
    }
}
class Parent {
    String name =  "zhangsan";
    void test(){
        System.out.println("test");
    }
}
class Child extends Parent{

}
面向对象 - Extends - 继承
如果父类和子类有相同的属性,那么可以采用特殊的关键字进行区分
super & this (无法在静态代码块和静态方法中无法使用这两个关键字)
Child1 c = new Child1();
        //System.out.println(c.name);
        c.test();
    }
}
class Parent1 {
    String name = "zhangsan";
}
class Child1 extends Parent1 {
    String name = "lisi";
    void test() {
        System.out.println(super.name);
        System.out.println(this.name);
        System.out.println(name);
    }
}

----------------------------------------
zhangsan
lisi
lisi
构造方法
父类对象是在子类对象创建前完成的,创建子类对象前,会调用父类的构造方法完成父类的创建
默认情况下,子类对象构建时,会默认调用父类的构造方法完成父类对象的创建,使用的是super的方式,只不过JVM自动完成
如果父类提供了构造方法,那么JVM不会提供默认的构造方法,那么子类应该显示调用super方法构建父类对象
 Child2 c1 = new Child2();
        Child2 c2 = new Child2();
        Child2 c3 = new Child2();

        // new : 只会构建一个对象
    }
}
class Parent2 {
    String username;
    Parent2(String name) {
        username = name;
        System.out.println("parent...");
    }
}
class Child2 extends Parent2{
    Child2() {
        super("zhangsan");
        System.out.println("child...");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值