首页 > 其他分享 >【无标题】day2

【无标题】day2

时间:2024-11-12 14:49:44浏览次数:3  
标签:String 子类 age day2 无标题 class public name

继承

public class B extend A{`
/*A类称为父类(基类,超类)。B称为子类(派生类)。*/
`}

特点:子类能继承父类的非私有成员变量(成员变量,成员方法)。

继承后对象的创建:子类的对象是由子类、父类共同完成的。

继承的好处:减少代码重复性。

权限修饰符:用来限制类中的成员(成员变量、成员方法、构造器、代码块)能够被访问到的范围。

单继承:Java是单继承,Java中的类不支持多继承,但是支持多层继承。

class A{}
class B{}
//class C extends A,B{} 多继承报错
//java支持多层继承
class A{}
class B extends A{}
class C extends B{}

Object类:任何类都是直接或间接继承Object类。

方法重写:子类可以重写一个方法名称参数列表一样的方法,去覆盖父类的方法,重写后,方法的访问,Java会遵循就近原则。

方法重写的注意事项:1.用Override注解(他可以指定编译器,检查重写格式是否正确)。2.子类重写父类方法时,访问权限必须大于或者等于父类的权限(public>protected>缺省)。3.重写的方法返回值类型,必须与被重写的方法返回值类型一样,或者范围更小。4.私有方法、静态方法不能被重写。

总之,遵循一个原则就行,申明不变,重新实现

方法重写的应用场景:子类重写Object类的to String()方法,以便放回对象的内容。

//day2.Stuent@3b07d329重写之前放回地址
    @Override
    public String toString(){
        return "name="+name+",age="+age;
    }
//name=null,age=0重写之后放回的

在子类方法中访问其他成员(成员变量、成员方法),是依照就近原则的。

public class Test2 {
    public static void main(String[] args) {
        Z z=new Z();
        z.showname();
​
​
    }
    public static class F{
        private String name="父类名字";
        public void print1(){
            System.out.printf("==父亲的print1方法执行==");
        }
    }
    public static class Z extends F{
        private String name="子类名字";
        public void showname(){
            String name="局部名字";
            System.out.println(name);//局部名字
            System.out.println(this.name);//子类名字
            System.out.println(super.name);//父类名字
​
        }
//访问成员方法类似,不做演示。
​
    }
}

子类构造器:子类的全部构造器,都会先调用父类的构造器,在执行自己。

this(...)调用兄弟构造器:任意类的构造器中,是可以通过this(...)去调用该类的其他构造器的。(this()、super()都只能放在构造器的第一行,因此有了this()就不能写super(),反之亦然。)

package day2;
​
public class Test3 {
    public static void main(String[] args) {
        //需求:如果学生没有填写学校,那么学校就默认为黑马程序员
        Student stu1 = new Student("张三",18);
        System.out.println(stu1.getName());//张三
        System.out.println(stu1.getAge());//18
        System.out.println(stu1.getSchool());//黑马程序员
​
​
    }
}
class Student{
    private String name;
    private int age;
    private String school;
​
    public Student() {
    }
//通过this(...)去调用该类的其他构造器
    public Student(String name,int age){
        this(name,age,"黑马程序员");
​
    }
    public Student(String name, int age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }
​
    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 String getSchool() {
        return school;
    }
​
    public void setSchool(String school) {
        this.school = school;
    }
}

多态

标签:String,子类,age,day2,无标题,class,public,name
From: https://blog.csdn.net/weixin_74799820/article/details/143714615

相关文章

  • 【无标题】
    Mavenmaven配置1.下载maven,https://archive.apache.org/dist/maven/maven-3/3.9.7/source/2.新建文件夹(创建本地仓库位置,后面创建项目用,解压不要放进来)2.解压然后找到conf//setting将下面位置的信息修改成下面样子<settingsxmlns="http://maven.apache.org/SETTINGS/1......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World
    题目链接:[CISCN2019华北赛区Day2Web1]HackWorld。打开环境后如下所示。尝试输入1、2、3、4、...,发现仅存在三种结果。即1时,输出"Hello,glzjinwantsagirlfriend."。2时,输出"Doyouwanttobemygirlfriend?"。其他,输出"ErrorOccuredWhenFetchResult."。......
  • [CISCN2019 华北赛区 Day2 Web1]Hack World 1
    [CISCN2019华北赛区Day2Web1]HackWorld1打开实例发现是个POST注入框盲猜SQL注入,万能密码检测无果,而且经过测试存在大量sql关键字过滤尝试使用(),出现了bool(false),确定这是一道布尔注入题and被禁用,决定采用异或^注入构建payload脚本梭哈:成功获得flag:flag{a2f7089......
  • 11.9 javaweb学习 day2 基础标签&样式
    网页响应流程浏览器前端服务器后端服务器数据库1.浏览器请求前端2.前端响应浏览器3.浏览器请求后端4.后端请求数据库5.数据库响应后端6.后端响应浏览器网页的组成1.网页的文字,图片,音频,视频,超链接什么的,本质是前端代码2.前端代码通过浏览器的转化......
  • 【无标题】海外媒体发稿:华尔街内参北美顶级财经的璀璨之星
    一、华尔街内参的崛起之路华尔街内参在竞争激烈的财经媒体领域走出了一条独特的崛起之路。它以专业、独立和深入的财经报道为基石,逐渐赢得了全球投资者的信赖。成立之初,华尔街内参便致力于为读者提供及时、准确的财经信息和前瞻性建议。其报道范围广泛,覆盖全球市场动态、政策......
  • day20-21之间的项目实战:若依ruoyi开发(可以跳过)
    一,项目概述官网文档地址:http://doc.ruoyi.vip/rouyi是一个后台管理系统,基于经典技术组合(springboot,apacheshiro,mybatis,thymeleaf)主要是让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。系统要求JDK>=1.8myslq>=5.7maven>=3.8二,开发环......
  • 【无标题】
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注......
  • 26文科跨考北大软微刷题日记-DAY2
    昨天学校期中考试,今天更新。完成进度:1.语法基础课第二讲(if条件)课后习题已做完2.打算今晚再看一下408数据结构的6.3_1图的广度优先遍历和6.3_2图的深度优先遍历做题总结:1.如何描述“一个数是另一个数的整数倍”if(a%b==0)2.若出现像python中的字典样式的,如何通过不用......
  • My_SQL day2
    知识点一:mysq查询方法    排序    限制    去重    模糊查询    范围查询    聚合函数    分组知识点二:连接查询    1.内连接    2.外连接知识点一:mysql查询方法isnull      ......
  • AI人工智能学习-Day2
    人工智能应用范畴脑科学认知科学心理学语言学逻辑学哲学计算机科学人工智能包含领域机器学习MachineLearning数据挖掘Databases模式识别神经计算NeurocompatingAI、机器学习、深度学习的关系人工智能包含机器学习,机器......