Java 继承学习笔记

继承笔记:
1.关键词:extends
    public class Zi extends Fu     ( 子父类的有关系,is a  A是B的一种)
--------------------------------------------------------------
2. super  this 访问子父类的有关系 : 
    生成的子类对象,访问变量是的先后关系:局部变量-》子类的成员变量this.变量名-》父类成员变量super.变量名
    public class Zi extends Fu {
            public String name ="ithema";
            public int age = 20;
            public  void Show2(){
                System.out.println("你现在调用的是子类中的Show2()");
                int age = 15;
                System.out.println("我是局部变量age:"+age);
                System.out.println("我是本类成员变量age:"+this.age);
                System.out.println("我是本类父类中成员变量age:"+super.age);

            }
    }

--------------------------------------------------------------------------------
3.继承中构造方法的访问特点:
  规则:
  a:子类中所有的构造方法(无参或有参)都会访问父类中的无参构造方法
     理由:子类会继承父类中的数据,还有可能使用到,所以子类初始化前,父类一定要初始化
          每一个子类构造方法的第一条语句默认都是:super(),可以隐藏不写,
  b:父类中没有无参构造方法怎么处理?
     1.super(参数) ,利用super() 来调用父类中的有参构造方法
     2.在父类中写一个无参构造方法  public  Zi() { }  (推荐方式)
eg:
public class Fu {  //父类中没有无参构造方法
   public int age ;
   /* public Fu() {
        System.out.println("父类无参构造方法被调用");
    }*/
    public Fu(int age) {
        this.age = age;
        System.out.println("父类有参构造方法被调用");
    }
}

public class Zi extends Fu {
        public int age ;
    public Zi() {
        super(18);  //调用父类中的有参构造方法来初始化父类
        System.out.println("子类无参构造方法被调用");
    }
    public Zi(int age) {
        super(age);  //调用父类中的有参构造方法来初始化父类
        this.age = age;
        System.out.println("子类有参构造方法被调用"+this.age);
    }
}
----------------------------------------------------------
4.继承中成员方法的访问特点:
  生成的子类对象,访问方法时的先后关系: 子类方法中寻找》父类方法中寻找 都没找到方法 ,就报错
  如果子类和父类中有相同的方法 那么在子类方法中,可以用super.方法名() 来调用
  eg:
     public void Show(){
           super.Show();
           System.out.println("子类中的方法被调用");
       }

---------------------------------------------------------------------------------------

5.super内存调用图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值