• 继承2


    继承后的特点
    1.成员方法重名
    2.成员方法不重名

    • 不重名
    public class Fu{
        int cum;
        public void show(){
            System.out.println("Fu类中的show方法在执行");
            System.out.println("Fu类中的成员变量num"+num);
        }
    }
    public class Zi extends Fu{
        int num;
            public void show2(){
            System.out.println("Zi类中的show方法在执行");
            System.out.println("Zi类中的成员变量num"+num);
        }
    }
    public class Text{
        public static void main(String[] args){
            //构建对象
            Zi zi=new Zi();
            zi.show();//调用的是父类当中的show()方法
            zi.show2();//调用子类当中的show2()方法
        }
    }
    

    总结:
    如果子类父类中出现不重名的成员方法,这时的调用时没有【任何影响的】,对象调用方法时,会现在子类中查找又没有对应的方法,若子类中存在该方法那么就执行子类中的方法,若子类中存在该方法那么会执行父类当中的成员方法。

    • 重名
    public class Fu{
    int num=10;
        public void show(){
            System.out.println("fu show()方法在执行");
            System.out.println("fu 成员变量 num"+num);
        }
    }
    public class Zi extends Fu{
    int num=20;
            public void show(){
            System.out.println("zi show()方法在执行");
            System.out.println("zi 成员变量 num"+num);
        }
    }
    public class Text{
        public static void main(String[] args){
            //先构建对象
            Zi zi=new Zi();
            //调用show();
            //子类中有show() 方法。执行的时是重写后的show()方法
            zi.show();	//zi show() 方法在执行  20;
        }
    }
    

    总结
    如果过子类和父类的方法重名则认为是子类重写(Override)了父类中的方法,这时候访问的是子类中的方法,他会先从子类中找,如果找到则输出的是子类中的方法(就近原则)

    • 继承后的构造方法
      构造方法的定义和作用 :
    1. 构造方法的名字和类名要保持一致,所以子类是无法继承父类当中的构造方法
    2. 构造方法的作用一般是用来初始化成员变量,所以子类在初始化的过程中,必须先执行父类中的初始化动作。子列的构造方法当中默认有一个super()方法,表示调用父类的构造方法,弗列的成员变量初始化之后,才可以给子类使用
    public class Fu{
        private int n;
        public Fu(){
            System.out.println("Fu()类无参构造方比调用");
        }
    } 
    public class Zi extends Fu{
        public Zi(){
            //super()调用父类中的构造方 隐式
            System.out.println("zi()方法被掉");
        }
    }
    public class Text{
        public static void main(Strintg[] args){
            Zi zi= new Zi();//先调用父类当中的无参构造方法,然后子类的无参方法被调用
        }
    }
    
  • 相关阅读:
    Git一些简单但非常重要并常用的操作命令
    利用fastjson解析json并通过js&ajax实现页面的无跳转刷新
    利用Graphviz绘制逻辑关系依赖图
    oracle导入.dmp文件
    Linux查找当前目录5天的文件并打包
    Web安全相关(三):开放重定向(Open Redirection)
    Web安全相关(二):跨站请求伪造(CSRF/XSRF)
    Web安全相关(一):跨站脚本攻击(XSS)
    密码学应用(DES,AES, MD5, SHA1, RSA, Salt, Pkcs8)
    行为驱动开发(BDD)实践示例
  • 原文地址:https://www.cnblogs.com/zk2020/p/14027889.html
Copyright © 2020-2023  润新知