zoukankan      html  css  js  c++  java
  • java 基础--继承--007

    1,子类只能继承父类所有非私有成员
    2,子类不能继承父类的构造方法,但可以通过super去访问父类构造方法
    3,子类成员变量和父类成员变量名称不一样,如果一样类似于重写,按子类处理,如果一样,就近原则
    
    3,如果想使用本类成员变量用this.XX 父类用super.XX(this:本类对应的引用,super:父类对应的引用(父类存储空间标识))
    4,子类中所有的构造方法都会默认访问父类中的无参构造方法,因为子类会继承父类中的数据,还会使用父类中的数据
      因此子类初始化前一定要先完成父类的初始化
      注意:子类每一个构造方法的第一条语句默认都是:super()
    5,父类没有无参构造方法,子类构造方法怎么办?
       1,在父类添加无参构造方法
       2,在子类中显示的使用带参super(“xxx”)去调用父类带参构造方法
       3,通过this去调用本类的其他构造方法,但是子类中一定要有一个去访问了父类的构造方法,否则父类数据没法初始化
    注意:this(...)/super(...)一定要出现在第一条语句上
         如果不是放在第一条语句上,就可能对父类的数据进行多次初始化
    举例
    class Father{
        public Father(String name){}
    }
    class Son extends Father{
        public Son(){
            super("xxx");
        }
        public Son(String name){        
              super("XXX");// 方法2,
              this();//方法3,同时将上句注释掉
           
        }
    }
    6,子类方法和父类方法声明一样,怎么办?
      1,先找子类中有没有这个方法,有就使用
      2,再找父类中有没有这个方法,没有就报错
    
    7,子类重写了父类的方法,但是还想用父类方法中的功能怎么办?
       使用super调用父类的被重写方法
    举例:
    class Father{
      public void call(String name){
           System.out.println("父类的方法")
       }
    }
    class Son extends Father{
        public void call(String name){
           super.call(name);
           System.out.println("子类的方法")
       }
    }
    
    8,1,父类私有方法不能被重写,因为私有方法无法被继承
       2,子类重写父类方法时,访问权限不能更低,最好一致
       3,父类的静态方法,子类也必须通过静态方法重写(父类为非静态),子类也不能为静态
       千言万语一句话:子类和父类保持一致
    
    class Father{
      public void call(String name){
           System.out.println("父类的方法")
       }
    }
    class Son extends Father{
       //子类不能覆盖父类方法 
       void call(String name){       
           System.out.println("子类的方法")
       }
    }
  • 相关阅读:
    python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
    python学习笔记-day4笔记 常用内置函数与装饰器
    Python学习笔记-Day3-python内置函数
    Python学习笔记-Day3-文件操作
    Python学习笔记-Day3-python函数
    Python学习笔记-Day3-python关键字
    Python学习笔记-Day3-set集合操作
    Python学习笔记-Day2-Python基础之列表操作
    Python学习笔记-Day2-Python基础之元组操作
    Python学习笔记-Day2-Python基础之字典操作
  • 原文地址:https://www.cnblogs.com/ysloong/p/6410657.html
Copyright © 2011-2022 走看看