首页 > 编程语言 >Java学习日历(继承,多态)

Java学习日历(继承,多态)

时间:2024-07-21 23:27:21浏览次数:15  
标签:Java name age 日历 多态 void println public out

  1. 继承中成员变量访问特点:就近原则
System.out.println(name)System.out.println(name)
Sytem.out.println(this.name)从本类成员变量开始往上找
Sytem.out.println(super.name)从父类成员变量开始往上找
package Extends;

class Student{
    public void eat(){
        System.out.println("学生在吃饭");
    }
}

class OverseaStudent extends Student{
    @Override
    public void eat(){
        System.out.println("留学生在吃饭");
    }

    public void lunch(){
        this.eat();
        super.eat();
    }
}

public class ExtensTest {
    public static void main(String[] args) {
        OverseaStudent os = new OverseaStudent();
        os.lunch();
    }
}

方法重写
当父类方法中,不能满足子类现在的需求时,我们就需要吧这个方法进行重写
注意:方法重写时上面要加上@Override
方法重写的本质,覆盖了虚方法表中的方法

继承中构造方法的特点

  • 父类中构造方法不会被子类继承
  • 子类中所有的构造方法Moore你先访问父类中的无参构造,再执行自己
  • 子类构造方法的第一行默认都是:super(),不写也存在,且必须在第一行
  • 如果想调用父类有参构造,必须手动写super()进行调用

this:理解为一个变量,表示当前方法调用者的地址值
super:代表父类存储空间

多态

多态: 同类型的对象,表现出不同形态
多态的表现形式: 父类类型 对象名称 = 子类对象
多态的前提:

  • 有继承关系
  • 有父类引用指向子类对象
  • 有方法重写
//Person类
package PolymorphicStudy;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }


    public void setAge(int age) {
        this.age = age;
    }

   public void show(){
       System.out.println(this.getName() + this.getAge());
   }
}
//Student类
package PolymorphicStudy;

public class Student extends Person{
    public Student() {
    }

    public Student(String name, int age) {
        super(name, age);
    }

    @Override
    public void show(){
        System.out.println("学生的信息为:" + this.getName() + ", " + this.getAge());
    }
}
//Teacher类
package PolymorphicStudy;

public class Teacher extends Person{

    public Teacher() {
    }

    public Teacher(String name, int age) {
        super(name, age);
    }

    @Override
    public void show(){
        System.out.println("老师的信息为: " +  this.getName() + ", " + this.getAge());
    }
}

package PolymorphicStudy;

public class Test1 {
    public static void main(String[] args) {
        Student s = new Student("张三",18);
        Teacher t = new Teacher("李四",40);

        register(s);
        register(t);
    }

    //这个方法既能接收老师,又能接收学生
    public static void register(Person p){
        p.show();
    }
}

多态的好处:1. 使用父类型作为参数,可以接收所有子对象 2. 体现多态的扩展性和便利

,知识持续更新...

文章中照片来源为小破站黑马程序员

标签:Java,name,age,日历,多态,void,println,public,out
From: https://blog.csdn.net/2301_80708596/article/details/140596028

相关文章

  • Java流的概念及API
    流的概念 流(Stream)的概念代表的是程序中数据的流通,数据流是一串连续不断的数据的集合。在Java程序中,对于数据的输入/输出操作是以流(Stream)的方式进行的。可以把流分为输入流和输出流两种。程序从输入流读取数据,向输出流写入数据。Java中的流可以按如下方式分类:按流的方......
  • java面向对象进阶篇--《继承》(万字总结,建议收藏)
    一、前言java部分连载开始,继续开始我们的java篇,前几天一直在调节web项目,刷了点力扣的题,导致java篇拉下了点。希望大家支持一下作者,制作不易。支持一下吧(#^.^#)---------------------------------------->点我❥(^_-) 二、java继承的概念和特点Java中的继承结构指的是通......
  • [Java基础]ArrayList
    ArrayListArrayList是List接口的实现类,它是支持根据需要而动态增长的数组。java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时需要知道数组的所需长度,但有时我们需要动态程序中获取数组长度。ArrayList就是为此而生的,但是它不是线程安全的,外......
  • JavaWeb MyBatis案例
    JAVAWEBMyBatis视频学习笔记MyBatis案例1环境准备1.1数据库准备1.2准备一个Brand实体类1.3准备测试用例1.4安装MyBatisX插件2编写接口2.1编写查询所有2.1.1编写Mapper接口2.1.2编写SQL映射文件2.1.3编写测试语句完成测试2.1.4BugFix2.2查看详情2.2.1编......
  • Java基础06:变量、常量、作用域
    1.变量Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:typevarName=value,varName2=value2;//数据类型变......
  • java入门—JDK下载、环境配置、IDEA开发工具使用
    JavaSE入门—初识Java、JDK开发环境下载、Path环境配置、IDEA开发工具下载、HelloWorld详解1.Java概述1.1Java发展概述1.2Java语言特点及应用1.3Java技术体系2.Java的开发环境(JDK)搭建2.1JDK的下载2.2JDK与JRE3.Java环境配置3.1path、JAVA_HOME环境变量配......
  • Java基本语法篇 [2](运算符与键盘输入流程详解)
    ......
  • 计算机Java项目|基于SpringBoot的高校办公室行政事务管理系统
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • Java JVM——13. 垃圾回收相关算法
    1.生存还是死亡?在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们称为垃圾标记阶段。那么在JVM中......
  • javascript中常规操作节点的方法
    JavaScript常用操作DOM节点的方法包括获取节点、创建节点、添加节点、删除节点、替换节点等。1.获取节点(1)通过ID获取使用document.getElementById(“元素ID”)方法,通过元素的ID获取单个元素。这是最常用的方法之一,因为ID在页面中是唯一的,可以直接定位到具体元素。<d......