zoukankan      html  css  js  c++  java
  • 继承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();//先调用父类当中的无参构造方法,然后子类的无参方法被调用
        }
    }
    
  • 相关阅读:
    记一次不好不坏的数据库优化
    洛谷 P3065 [USACO12DEC]First! G(字典树,环的判断)
    洛谷 P3879 [TJOI2010]阅读理解(trie树)
    洛谷 [USACO08DEC]Secret Message G(01字典树)
    洛谷 P5149 会议座位(归并排序,trie树)
    2019强网杯babybank writeup及浅析
    python多线程的学习
    关于信息安全的学习
    FineCMS v5.4.1 后台getshell
    二次注入的复现
  • 原文地址:https://www.cnblogs.com/zk2020/p/14027889.html
Copyright © 2011-2022 走看看