• 对象的上转型对象


    1. 子类覆盖了父类的方法和具有同名的属性

    package com.sun.util;
    
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Scanner;
    
    class A{
        public int a=1;
        public int b=2;
        public void add(){
            System.out.println("A add");
        }
        public void minus(){
            System.out.println("A minus");
        }
        
    }
    public class B extends A{
        public int a=3;
        public int b=4;
        public int c=5;
        @Override
        public void add() {
            // TODO Auto-generated method stub
    //        super.add();
            System.out.println("B add");
        }
        public void multi(){
            System.out.println("B multi");
        }
        public static void main(String[] args) {
            LinkedList<Integer> list=new LinkedList<>();
            list.add(1, 1);
            A a = new B();
            System.out.println(a.a);    //1
            System.out.println(a.b);    //2
            a.add();
            a.minus();
    //        a.multi() ;// 无法访问子类的新增方法
            
            B b =new B();
            System.out.println(b.a);    //3
            System.out.println(b.b);    //4
            System.out.println(b.c);
            b.add();
        }
    }
    

    1
    2
    B add
    A minus
    3
    4
    5
    B add




    1. 子类覆盖了父类的方法和没有同名的属性

    package com.sun.util;
    
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Scanner;
    
    class A{
        public int a=1;
        public int b=2;
        public void add(){
            System.out.println("A add");
        }
        public void minus(){
            System.out.println("A minus");
        }
        
    }
    public class B extends A{
    //    public int a=3;
    //    public int b=4;
        public int c=5;
        @Override
        public void add() {
            // TODO Auto-generated method stub
    //        super.add();
            System.out.println("B add");
        }
        public void multi(){
            System.out.println("B multi");
        }
        public static void main(String[] args) {
    
            A a = new B();
            System.out.println(a.a);    //1
            System.out.println(a.b);    //2
            a.add();
            a.minus();
    //        a.multi() ;// 无法访问子类的新增方法
            
            B b =new B();
            System.out.println(b.a);    //1
            System.out.println(b.b);    //2
            System.out.println(b.c);
            b.add();
        }
    }
     
    1
    2
    B add
    A minus
    1
    2
    5
    B add
  • 相关阅读:
    django-5.Django 管理后台
    django-3.模板引擎
    django-2.视图与url配置
    django- 1.环境与初始化项目
    css层叠样式表
    bootstrap table 个人心得
    attr和prop的区别 chosen插件
    extract-text-webpack-plugin
    Git常用命令大全,迅速提升你的Git水平
    dropload.js 局部区域加载坑
  • 原文地址:https://www.cnblogs.com/sunupo/p/13493564.html
Copyright © 2020-2023  润新知