小白学JAVA,与你们感同身受,JAVA---day5:关于多态的理解和分析。鲁迅的一句话:总之岁月漫长,然而值得等待。

鲁迅的一句话:总之岁月漫长,然而值得等待。

至于是不是他说的,就看大家的了。

 

/*
多态:事物存在的多种形态。
多态的前提:
1.要有继承关系。
2.要有方法的重写。
3.要有父类引用指向子类对象。


向上转型和向下转型:
1.父类引用指向子类对象    向上转型。由小变大
2.向下转型。由大变小,要用到强制类型转换。
3.一定要先有向上转型再有向下转型。

多态的好处和弊端:
好处:
1.提高了代码的可维护性(继承保证)和扩展性(多态保证)。
弊端:不能使用子类特有的属性和行为。

作为参数时,用到instanceof关键字来判断前边的引用是否是后面的数据类型。      


抽象类:abstract关键字
abstract class{}
public abstract void eat();
抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类或接口。
抽象类是不能实例化的,要有具体的子类实例化按照多态的方式。


抽象类:
1.成员变量:既可以是变量,也可以是常量。abstract不能修饰成员变量。
2.成员方法:可以是抽象,也可以是非抽象。
3.构造方法:有。
成员方法的特点:
抽象方法是强制子类要做的方法。
非抽象方法是子类继承的,提高了代码的复用性。    


 */

abstract class Animal{
    public abstract void eat();
}
class Cat extends Animal{
    
    public void eat(){
        System.out.println("吃饭");
    }
}

class day5{
    public static void main(String[] args) {
        /*
        Father f=new Son();              //父类引用指向子类对象    向上转型。由小变大
        
        System.out.println(f.num);       //对于成员变量,编译看左边(父类),运行看左边(父类)。
        f.print();                         //对于成员方法,编译看左边(父类),运行看右边(子类)。   动态绑定。  
        f.aim();                         //对于静态方法,编译看左边(父类),运行看左边(父类)。        
        System.out.println(new Son().num);*/
        /*
        Son s=(Son)f;                      //向下转型。由大变小,要用到强制类型转换。
        s.print();                      
        Animal a=new Cat();
        a.eat();
       
        if(a instanceof Cat){
            Dog c=(Dog)a;                    //ClassCastException: Cat cannot be cast to Dog  
            c.eat();
        }           
        else a.eat();  */
        Cat c=new Cat();
        c.eat();
    }
}
/*
class Animal{
    public void eat(){
        System.out.println("动物吃饭");
    }
}
class Cat extends Animal{
    public void eat(){
        System.out.println("猫吃鱼");
    }
}
class Dog extends Animal{
    public void eat(){
        System.out.println("狗吃水");
    }
}
class Father{
    int num =10;
    public void print(){
        System.out.println("父类");
    }
        static void aim(){
        System.out.println("父类静态运行");
    }
}
class Son extends Father{
    int num=20;
    public void print(){
        System.out.println("子类");
    }
        static void aim(){
        System.out.println("子类静态运行");
    }
}*/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 与合成生物学「联姻」的五大挑战:技术、数据、算法、评估与社会学

来源:ACM通讯编译:王玥编辑:陈彩娴在过去的二十年里,生物学发生了翻天覆地的变化,建立在生物系统上的工程成为了可能。赋予了我们细胞遗传密码(DNA)排序能力的基因组革命是这一巨大变化的主要推…

物理学家:时间旅行有可能实现,但前提是……

来源:机器之心作者:Barak Shoshany原文链接:https://phys.org/news/2022-04-parallel-timelines.html时间旅行是科幻电影、小说中经久不衰的话题,然而直到现在,我们依然无法确定这种幻想是否可行。在这篇文章中&#x…

二叉树----数据结构:二叉树的三种遍历及习题

二叉树----数据结构:二叉树的三种遍历,利用递归算法。 关于二叉树的遍历,应用非常广泛,不单单是访问打印结点,还可以进行一系列的操作,如赋值、删除、查找、求二叉树的深度等等。 有递归和非递归两种算法,非递归用到了…

小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。

抽象类接口的理解 鲁迅的一句话:总之岁月漫长,然而值得等待。 /* 抽象类中的面试题: 1.一个抽象类中可不可以没有抽象方法:可以,这样做的目的只有一个,就是不让其他类创建本类对象交给子类完成。 2.abstract关键字不能和哪些关键字共存: static final private 接口的概述…

谷歌硬件主管:AR眼镜还在开发,环境计算是未来目标

来源:网易智能5月13日消息,谷歌硬件主管里克奥斯特洛 (Rick Osterloh)日前在接受采访时表示,“环境计算”是谷歌未来的目标和愿景。奥斯特洛周三在接受采访时表示:“计算应该能够无缝帮助你解决任何问题,而且就在你身边…

一个牛人给JAVA初学者的建议。虽然岁月漫长,但仍值得等待

给初学者之一:浅谈java及应用 学java不知不觉也已经三年了 从不知java为何物到现在一个小小的j2ee项目经理 虽说不上此道高手,大概也算有点斤两了吧 每次上网,泡bbs逛论坛,没少去java相关的版面 总体感觉初学者多&#xff0c…

大脑衰老可逆转,只需注入年轻脑脊液,「返老还童」登Nature

来源:FUTURE远见 选编:闵青云 「老喽,记不住喽。」随着年龄的不断增长,不少人都会发出这样的感叹——记忆力逐渐下降。那么是否存在一种方法,可以让这种自然现象「逆天改命」呢?Nature说:有的。…

人工智能在苍蝇眼的帮助下监测无人机:新的仿生算法从噪声中提取信号

来源:国际仿生工程学会2018年12月,由于有报道称附近有无人机飞行,数千名度假旅客被困在伦敦盖特威克机场。导致这个欧洲非常繁忙的机场关闭了两天,造成重大延误,并使航空公司损失了数百万美元。商业空域中未经授权的无…

树的知识点总结-数据结构

** 一:树的基本术语 1.定义 树是一种非线性结构,只有一个根结点,除根结点外每个孩子结点可以有多个后继,没有后继的结点叫叶子结点。 2.概念 根结点:没有前驱; 孩子:有前驱的结点;…

NLP预训练范式大一统,不再纠结下游任务类型,谷歌这个新框架刷新50个SOTA

来源:机器之心编辑:张倩、小舟在这篇论文中,来自谷歌的研究者提出了一种统一各种预训练范式的预训练策略,这种策略不受模型架构以及下游任务类型影响,在 50 项 NLP 任务中实现了 SOTA 结果。当前,NLP 研究人…

赫夫曼树编码的算法及应用习题--数据结构

赫夫曼树编码的算法及应用习题 1.构造赫夫曼树的方法 1.根据给定的n个权值{w1,w2,---wn},构成n棵二叉树的集合F{T1,T2...,Tn},其中每棵二叉树中只有一个带权为Wi的根结点,其左右子树为空。 2.在F中选取两棵根结点的权值最小的树作为左右子树&#xff…

吴咏时:未来基础学科发展的“铁三角”

来源: 节选自《物理》2022年第5期《圆桌论坛:对21世纪物理学的愿景展望》。2021年9月,在清华大学举行“庆祝杨振宁先生百年华诞思想研讨会”圆桌论坛环节上,美国犹他大学教授吴咏时对今后基础物理学做了一番展望。他指出了基础物理…

树的叶子结点与完全二叉树结点计算方法

一:完全二叉树中结点问题 分析: 设叶子节点个数为n0,度为1的节点个数为n1,度为2的节点个数为n2 侧有 n0n1n2n (1) 对于二叉树有: n0n21 (2) 由(1)(2) > n0(n1-n1)/2 (3) 由完全二叉树…

图的知识点总结-数据结构

一&#xff1a;图的基本概念和术语 1.图之间的关系可以是任意的&#xff0c;任意两个数据元素之间都可能相关。 2.顶点&#xff1a;数据元素。 3.边or弧&#xff1a;从一个顶点到另一个顶点的路径。<V, W>表示弧&#xff0c;&#xff08;V,W&#xff09;表示边&#x…

当物理学遇到机器学习:基于物理知识的机器学习综述

来源&#xff1a;集智俱乐部作者&#xff1a;潘佳栋 审校&#xff1a;梁金编辑&#xff1a;邓一雪摘要物理信息机器学习&#xff08;Physics-informed machine learning&#xff0c;PIML&#xff09;&#xff0c;指的是将物理学的先验知识&#xff08;历史上自然现象和人类行为…

图的遍历——深度优先搜索+广度优先搜索

一&#xff1a;图的遍历——深度优先搜索 在本文其他内容中只是大体概括了主要的图论内容&#xff0c;更加详细的代码实现及算法分析在此给出。 深度优先搜索&#xff08;DFS&#xff09;类似树的先序遍历。 假设初始状态是图中所有顶点未曾被访问&#xff0c;则深度优先搜索…

RISC-V何以成功?

来源&#xff1a;AI前线作者&#xff1a;BRIAN BAILEY译者&#xff1a;王强策划&#xff1a;刘燕RISC-V 处理器架构的诞生毫无疑问让很多人都为之兴奋不已。然而&#xff0c;尽管许多人都说 RISC-V 预示着我们将迎来更广泛的开源硬件运动&#xff0c;但这种架构究竟为什么取得成…

最小生成树——普里姆算法和克鲁斯卡尔算法

最小生成树 用来解决工程中的代价问题。 一&#xff1a;普里姆算法 具体代码用C语言实现如下&#xff1a; typedef int VRType;typedef char InfoType;#define MAX_NAME 3 /* 顶点字符串的最大长度1 */#define MAX_INFO 20 /* 相关信息字符串的最大长度1 */typedef char Vert…

大雅之美:十位大数学家心中最美的公式

来源&#xff1a;本文译自 http://www.concinnitasproject.org/portfolio/&#xff0c;中译文曾发表于 《中国数学会通讯》2017 年第 1 期。译者&#xff1a;刘云朋&#xff0c;天津大学理学院校译&#xff1a;林开亮大雅之美&#xff1a;十位大数学家心中最美的公式牛顿法Ste…

TabError的解决方法

问题&#xff1a;Python文件运行时报TabError: inconsistent use of tabs and spaces in indentation 原因&#xff1a;说明Python文件中混有Tab和Space用作格式缩进。这通常是使用外部编辑器编辑Python文件时&#xff0c;自动采用Tab进行格式缩进。 解决&#xff1a;将Tab转…