2021-04-25

笔记

多态

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

    public  Uncle(){

    }
  public void fahongbao(){
        System.out.println("发红包");
    }

子类一

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:57
 */
public class UncleTwo extends Uncle{
    public void faHongbao(){

        System.out.println("发红包");
    }
    public void songyan(){
        System.out.println("送烟");
    }
}

子类二

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:56
 */
public class UncleOne extends  Uncle{
    public void faHongbao(){
        System.out.println("发红包");
    }
}

多态

 UncleOne dajiu = new UncleOne();
       dajiu.faHongbao(); //大舅发红包
       UncleTwo uncleTwo = new UncleTwo() ;
       uncleTwo.faHongbao(); //二舅发红包

向上转型

 Uncle dajiu1 = new UncleOne() ;
       dajiu1.fahongbao();

向下转型

 Uncle dajiu1 = new UncleOne() ;
       dajiu1.fahongbao();
       //子类独有的方法在发生向上转型的时候无法在父类中使用
        //dajiu1.songyan     //会报错
        UncleOne temp = (UncleOne) dajiu1 ; //向下转型
        temp.songyan(); //可以调用子类独有的方法

instanceof

判断对象是否是指定的类型实例

避免发生错误的类型转换

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 15:58
 */
public class Demo02 {
    public static void main(String[] args) {
        Uncle uncle1= new UncleOne() ;
        Uncle uncle2 = new UncleTwo() ;
        if (uncle1 instanceof  UncleOne){
            UncleOne u1 = (UncleOne) uncle1 ;
            u1.fahongbao();
        }
        if (uncle2 instanceof  UncleTwo){
            UncleTwo u2 = (UncleTwo)  uncle2 ;
            u2.faHongbao();
        }
    }
}

Demo01

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:45
 */
public class Demo01 {
    public static void main(String[] args) {
        //多态
       UncleOne dajiu = new UncleOne();
       dajiu.faHongbao();
       UncleTwo uncleTwo = new UncleTwo() ;
       uncleTwo.faHongbao();

       Uncle dajiu1 = new UncleOne() ;
       dajiu1.fahongbao();
        //dajiu1.songyan     //会报错 子类独有的方法在发生向上转型的时候无法在父类中使用
        UncleOne temp = (UncleOne) dajiu1 ;
        temp.songyan();

       Uncle erjiu = new UncleTwo() ;
       erjiu.fahongbao();

       //向下转型
        Uncle uncleTwo1 = new UncleTwo() ;
        UncleTwo temp1 = (UncleTwo) uncleTwo;
        temp.faHongbao();
    }

}

Demo02

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 15:58
 */
public class Demo02 {
    public static void main(String[] args) {
        Uncle uncle1= new UncleOne() ;
        Uncle uncle2 = new UncleTwo() ;
        if (uncle1 instanceof  UncleOne){
            UncleOne u1 = (UncleOne) uncle1 ;
            u1.fahongbao();
        }
        if (uncle2 instanceof  UncleTwo){
            UncleTwo u2 = (UncleTwo)  uncle2 ;
            u2.faHongbao();
        }
    }
}

Uncle

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:47
 */
public class Uncle {
    private  String name ;
    private  int age ;

    public  Uncle(){

    }
    public  Uncle(String name , int age){
        this.name = name ;
        this.age = age ;
    }
    public void fahongbao(){
        System.out.println("发红包");
    }

    public String getName(){
        return  name ;
    }

    @Override
    public String toString() {
        return "Uncle{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public int getAge() {
        return age;
    }

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

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

}

UncleOne

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:56
 */
public class UncleOne extends  Uncle{
    public void faHongbao(){
        System.out.println("发红包");
    }
    public void songyan(){
        System.out.println("送烟");
    }
}

UncleTwo

package edu.xcdq;

/**
 * @qvthor liuwenzheng
 * @date 2021/4/25 14:57
 */
public class UncleTwo extends Uncle{
    public void faHongbao(){
        System.out.println("发红包");
    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 课堂代码~package edu.xcdq; public class Demo01 {public static...
    陈龙阅读 1,418评论 0 0
  • 今天是我在乐子节学习Java的十四天哦,元旦休了三天小长假继续回来学Java哟~学习Java有半个月了,这半个月的...
    嘎嘣脆a阅读 2,312评论 0 0
  • 1、面向对象的基本要素:封装、继承和多态。 封装的目的是隐藏事务内部的实现细节,以便提高安全性和简化编程。封装提供...
    脆皮鸡大虾阅读 1,810评论 0 0
  • package co.zyw;//学生类 //方法的重写:子类中对父亲的同名同参数列表的方法进行覆盖//使用:子类...
    函数解析式阅读 1,108评论 0 0
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,602评论 0 11

友情链接更多精彩内容