Java新手学习笔记---多态

public class testpolymorphism {
    public static void main(String[] args) {
         animal a = new cat();
         testVoice(a);
        //testVoice(new cat());
    }
    public static void testVoice(animal a){
        a.voice();
        if(a instanceof cat){
            ((cat)a).catchmouse();
        }
    }
}
class animal {
    String name;
    public void voice(){
        System.out.println("aaaaa");
    }
}
class cat extends animal{
    public void voice(){
        System.out.println("nya");
    }
    public void catchmouse(){
        System.out.println("抓");
    }
}
class dog extends animal{
    public void voice(){
        System.out.println("wang");
    }
}
nya
抓

一只猫可以叫它动物,传一只动物参数可以传一只猫,判断这只动物是啥用instanceof。

把猫叫动物后没法调用猫的方法,记得强转它为猫。

时间: 2024-12-28 05:05:12

Java新手学习笔记---多态的相关文章

Java新手学习笔记---字符串对象的相等

public class testobj_important { public static void main(String[] args) { String a = new String("abc"); String b = new String("abc"); System.out.println(a==b); String c = "def"; String d = "def"; System.out.println(

Java新手学习笔记---实例对象默认指针

public class testclass { public static void main(String[] args){ Student stu1 = new Student(); Comp c1 = new Comp(); c1.band="梁河县"; stu1.comp = c1; c1.band="1111"; System.out.println(stu1.comp.band); } } class Comp { String band; } cla

Java新手学习笔记---数组

public static void main(String[] args) { int[][] c = new int[1][3]; System.out.println(c.length); System.out.println(c[0].length); } 1 3 c指向的地址存放第一维度内容,第一维度内容存放第二维度一维数组首地址. 多维数组是一维数组的堆叠.

java JDK8 学习笔记——助教学习博客汇总

java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Java学习笔记第四章——认识对象 Java学习笔记第五章——对象封装 Java学习笔记第六章——继承与多态 7-10.12.14章 (by吴子怡) Java学习笔记JDK8>学习总结 11.13.15-18章 (by宋宸宁) 第11章 第13章第15章第16章第17章第18章

Bootstrap——布局组件 新手学习笔记

1.字形图标: <button type="button" class="btn btn-primary btn-lg" style="font-size: 60px; color:#000000;"> <span class="glyphicon glyphicon-user"></span> User </button> 2.下拉菜单: <div class="

Java基础学习总结--多态

一.面向对象的三大特性:封装.继承.多态 ? 从一定角度来看,封装和继承几乎都是为多态而准备的. 二.什么是多态? ? 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 三.实现多态的技术以及三个必要条件: ? 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 三个必要条件: 继承 重写 父类引用指向子类对象 四.多态的作用.好处.类型

java nio学习笔记(一)

位置保留,待用 java nio学习笔记(一),布布扣,bubuko.com

JAVA基础学习笔记(2)

看了几天的视频了,都没时间来写下学习笔记,今天来写下第二次的学习笔记,前几天看的给忘记了,就写最新看到的吧 主要内容:1.类的变量与函数(方法) 2.对象的存储方式 3.新建一个对象及对象的赋值与调用 4.空对象 5.匿名对象 1.类的变量与函数(方法) class Dog      //类名 { String name;  //变量的声明 int age; String color; void bark()   //方法的定义(返回值为空,不带参数) { System.out.println(

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方