首页 > 编程语言 >java中的继承关系

java中的继承关系

时间:2024-09-24 21:03:12浏览次数:8  
标签:关系 java 继承 System public extends println class out

继承是指我有多个类,而且这些类都有相同的属性和方法的时候就可以使用继承关系
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); // 30
        System.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();
    }
}

标签:关系,java,继承,System,public,extends,println,class,out
From: https://www.cnblogs.com/ndmtzwdx/p/18429253

相关文章

  • 02.Java流程控制
    1.Scanner对象可以通过Scanner类来获取用户的输入基本语法Scanners=newScanner(System.in);通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()来判断是否还有输入的数据next()一定要读取到有效字符后才......
  • Day5 JavaWeb知识了解以及每日一题:力扣125.验证回文串
    Day5JavaWeb知识了解以及每日一题:力扣125.验证回文串2024年9月24日20:06:45JavaWeb基础知识TomcatApacheTomcat是一个开源的Servlet容器和Web服务器,它是JavaEE(EnterpriseEdition)的一部分,专门用于运行JavaServlet和JavaServerPages(JSP)。Tomcat的主要功能是接收HTTP......
  • java_day5_面向对象、private关键字
    一、面向对象面向对象与面向过程的区别?面向过程的思想:代表语言C语言功能开发中的每一步都是自己参与的面向对象的思想:代表语言java语言指的是不断地创建对象,指挥对象事情过程面向对象的思想:1、都有那些事物?判断事物的方式:......
  • java封装题目3
    3.以面向对象的思想,编写自定义类描述图书信息。设定属性包括:书名,作者,出版社名,价格;方法包括:信息介绍show()要求:1)设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问2)限定价格必须大于10,如果无效进行提示3)限定作者,书名为只读属性4)设计构造方法实现对属性......
  • 基于SSM的选题管理系统(有报告)。Javaee项目。
    演示视频:基于SSM的选题管理系统(有报告)。Javaee项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringMvc+Mybatis+Jsp+Maven来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。系统设计思想一个成功的网站应明确......
  • JAVA的字符串这篇讲清楚了
    JAVA_String从概念上讲,JAVA字符串就是Unicode序列。例如"Java\u2122"由5个UNICODE字符J,a,v,a和™组成。Java没有内置和字符串类型,而是试用java标准库中提供的一个预定义类,很自然地叫做了string。子串substringStringsubStr=str.substring(beginIndex);这里beginIndex指......
  • java封装题目2
    2.以面向对象的思想,编写自定义类描述IT从业者。设定属性包括:姓名,年龄,技术方向,工作年限,工作单位和职务;方法包括:工作要求:1)设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问2)限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。3)限定“技......
  • java_day4_数组、方法
    一、数组一维数组数组:是一块连续固定大小的内存空间,有着索引的概念定义数组的语句格式:数据类型[]数组名;【推荐】数据类型数组名[];如果只是定义一个数组的话,没有给初始化值,相当于一个变量没有值,是不能够直接使用的如何对一个数组进行初始化?1、动态初始化......
  • 2024.9.24- java开学测
    1、定义student类,其中包括五个私有变量(stunumber,name,age,sex,score)。各成员的含义如下:变量stunumber为字符串类型String,用于存储学生的学号(有8位数字组成)。变量name为字符串类型String,用于存储学生的姓名。变量age为int类型,用于存储学生的年龄。变量sex为boolean类型,用于存储学......
  • java基础篇之反射(简单详细,快速入门)
    @[TOC]希望本文能帮助你增加对反射的理解反射的简单叙述及相关性质反射的源头——Class类反射的主要应用反射的简单叙述及相关性质能够分析类能力的程序为反射,反射机制的功能极其强大,下面我们就来简单举个例子publicclassStudent{privateStringname;......