栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习Day8

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习Day8

继承

继承的关键字是extends

extends用法:图片中的句子也叫签名

继承是Java中类与类之间的一种关系

使用继承的好处就是可以用父类封装所有子类可以用到的公共代码,让子类继承,实现代码的复用

 

发生继承的类称为子类,被继承的类称为父类

一个类只能继承一个父类,但是一个父类可以有多个子类

 

如果一个类没有显式继承父类,则隐式继承Object类

Java不支持多继承,只支持单继承,但支持多级继承

        Dog dog = new Dog();
        //这个是Dog类自己的方法
        dog.strain = "哈士奇";
        //在Dog类找不到level这个变量和setSex()这个方法,往上追溯到父类Animal可以找到这个变量和方法
        dog.level = 10;
        dog.setSex('公');
        //在dog类找不到toString()这个方法
        //往上追溯到父类Animal类也找不到
        //再往上追溯到Object类找到了toString()这个方法
        System.out.println(dog);
        System.out.println(dog.toString());
        //直接打印指针等同于打印toString()方法的返回值
        //Object类中toString()这个方法返回的是包名.类名+主机的东西
        System.out.println("finish");

 运行结果:

 

在继承体系的顶层是Object类,Object类称为祖先类,上帝类

在构造方法中的第一行处有一条隐式指令super()调用其父类的构造方法

this和super的区别

        this是指向当前对象,super是指向当前父类对象

 

        this和super的使用语法

                1、调用构造方法(只能在构造方法中调用,而且必须出现在第一行)

                        this();可以使用this()调用本类的构造方法

                        super();可以使用super()调用父类的构造方法

                2、访问成员

                        this.成员变量

                        super.成员变量

                        this.成员方法

                        super.成员方法

子类可以继承父类的非私有(非privat修饰)成员(包括成员变量和成员方法)

但把父类中的所有成员变量私有化,用private修饰符修饰时,此时子类的对象指针无法访问所有用private修饰的成员变量

 

父类的构造方法不能被子类继承,但可以被子类调用,且子类的无参构造方法中默认调用父类的无参构造方法

入栈顺序先子类再父类最后祖先类,堆区创建对象顺序先祖先类再父类最后子类

继承测试

静态变量和静态方法能继承吗?

静态变量和静态方法不在继承的范畴内,这个问题毫无意义

能发生继承关系的类在逻辑上应该具有一种“ is a ”的关系

比如:

Dog        is        a        Animal

Cat         is        a        Animal

Pig          is        a        Animal

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999559.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号