java中的继承关系

news/2024/9/24 21:04:04

继承是指我有多个类,而且这些类都有相同的属性和方法的时候就可以使用继承关系
java提供了一个关键字用来表示继承关系:extends
写法:class B extends A{} 表示B类继承自A类
这里的B称之为:子类,派生类
这里的A称之为:父类,基类或者超类
子类只能继承父类的成员变量和成员方法,并且不是私有的,如下

class Animal{String name;int age;public void eat(){System.out.println("吃饭");}public void sleep(){System.out.println("睡觉");}
}class Dog extends Animal {//子类相当于这里有一份父类中的非私有成员public void lookDoor(){System.out.println("看家");}
}class Cat extends Animal{}public class ExtendsDemo1{public static void main(String[] args) {Dog dog = new Dog();dog.eat();dog.sleep();System.out.println(dog.name);System.out.println(dog.age);}
}

类与类之间继承只能有一个直接父类,但是可以进行多重继承,形成继承体系

class Mother{}class GrandFather{}class Father extends GrandFather{}class Son extends Father{}//这样是不行的
//class Son extends Mother,Father{
//
//}public class ExtendsDemo2 {public static void main(String[] args) {}
}

子类方法查找变量的规则符合就近原则:
1.会先在自己的方法中进行查找,如果找到就直接使用
2.如果自己的方法中找不到,就去当前类的成员变量中找
3.如果当前的成员变量也没有,就去父类中的成员变量中去找

class Fu2{int a = 10;
}class Son2 extends Fu2{int a = 20;public void fun1(){int a = 30;System.out.println(a); // 30System.out.println(this.a); // 20
//        Fu2 fu2 = new Fu2();
//        System.out.println(fu2.a);System.out.println(super.a); // 10}
}public class ExtendsDemo4 {public static void main(String[] args) {Son2 son2 = new Son2();son2.fun1();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/64328.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

项目实战:Qt+OSG爆破动力学仿真三维引擎测试工具v1.1.0(加载.K模型,子弹轨迹模拟动画,支持windows、linux、国产麒麟系统)

需求1.使用osg三维引擎进行动力学模型仿真性能测试;  2.打开动力学仿真模型文件,.k后缀的模型文件,测试加载解析过程;  3.解决第三方company的opengl制作的三维引擎,绘制面较多与弹丸路径模拟较卡顿的问题;  4.测试时,使用的模型为公开模型,基础面数量达到160多万…

【入门岛第1关】linux 基础知识

目录闯关任务 完成SSH连接与端口映射并运行hello_world.py 闯关任务 完成SSH连接与端口映射并运行hello_world.py 1 在远程主机上建立hello_python.py程序并运行,查看程序运行的端口: import socket import re import gradio as gr# 获取主机名 def get_hostname():hostname …

DOTS计算Voronoi图形生成,根据点自动划分区域生成多边形

如图,生成Voronoi图形,代码如下。using UnityEngine; using Unity.Mathematics; using Unity.Jobs; using Unity.Collections; using Unity.Profiling;[ExecuteInEditMode] public class VoronoiTextureBurstJobComponent : MonoBehaviour {[SerializeField][Min(1)] uint _s…

Vue2+3基础

。第一个Vue程序 使用script进行Vue全局设置: 指定Vue实例挂载的位置 , Vue和js一样,都需要在script里写 第一步创建vue实例 1.为什么要new vue(),直接调用Vue不行吗?不行,因为如果直接调用Vue()会报如下错误: 2.关于vue构造函数:optionsoptions翻译为多个选项 Vue…

任务4:制作二维码

该二维码链接到游戏“植物大战僵尸”,寓教于乐。 提升趣味性和互动性的同时,学生们参与到课堂当中,发挥主体作用,感受到自然界植物的多样性,对土壤的作用有了更深刻的理解。

封装的练习题目1

1.使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心 情,名字;方法包括:叫,跑。 要求: 1)设置属性的私有访问权限,通过公有的 get,set 方法实现对属性的访问 2)限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示, 默认…

五款免费可视化工具全解析:选择你的最佳搭档

1. 山海鲸可视化 介绍: 山海鲸可视化是一款免费的国产可视化报表软件,与许多其他宣传免费的软件不同,山海鲸的报表功能完全免费并且没有任何限制,就连网站管理后台这个功能也是免费的。同时山海鲸可视化还提供了种类丰富的可视化图表、三维模型、模板可供使用,软件采用点击…