java的继承相关知识点

在下面的代码中,我会重点解释向上引用,子类转换成父类,父类构造器和子类构造器的关系,在每个代码中都会有非常详细的注释,我一直认为,代码加注释才更是最好的老师;
下面先来看父类(了解他的大体就可以,重点在子类)

package text.extends_s;

public class B{
    private int b;
    private int b2;
    private String b3;

    B(){
        System.out.println("调用了父类无参构造器");
    }
    public B(int b,int b2,String b3){
        this.b=b;
        this.b2=b2;
        this.b3=b3;
    }
    public void YH()
    {
        System.out.println("这是你爹");
    }
    public void YHH()
    {
        System.out.println("这是你大爷");
    }
}

再来子类

package text.extends_s;


public class AAA extends B {

    private int a;
    public static int a2;
    private String a3;
    private String a4;

    AAA(){
        System.out.println("调用了子类的无参构造器");

    }
    AAA(int a,String a3,String a4){//我们如果要在子类里面创建一个与父类无关的构造器,父类里面必须有一个无参构造器
        this.a=a;                 //其实这里面默认调用了父类的无参构造器;
        this.a3=a3;
        this.a4=a4;
    }
    public AAA(int b,int b2,String b3,String a4){
    super(b,b2,b3);//如果你想用父类的变量,必须调用父类相应的构造器
    this.a4=a4;     //而且,如果你的子类中有变量列表与父类中构造器相同,
              //  是绝对不允许的,大家可以试试创建一个AAA(int a,int a2,String a3)这样一个子类构造器,会报错哦
    }
    public void YH()//覆盖父类的YH
    {
        System.out.println("这是你儿子");
    }
    public void YM()
    {
        System.out.println("实验点1");
    }
    public static void main(String[] args) {
        AAA m=new AAA();//作为一个子类,我可以调用自身的方法,也可以调用父类的(前提是该子类中并没有把他覆盖)
        m.YH();         //创建子类无参对象,首次要调用父类无参构造器,再调用子类无参构造器;
        m.YHH();
        m.YM();
        System.out.println("---------------");
        B n=new B();
        n.YH();//作为一个父类,我可以调用我的方法,这里我还没有引用子类哦
        n=m;//这里我把子类转成父类;从这一刻开始,n就已经是一个“伪父类”了,他本身父类的方法,被
        n.YH();                 //子类中相同的方法所覆盖了。但是!他仍然不可以调用子类方法!!
        // 所以不太建议这样引用,价值不是太大。而且容易造成程序混乱
        n.YHH();

        System.out.println("-------------");
       // n.YM();//编译会出错
        B k=new AAA();//来一个向上转型,与子类转成父类极其相似,不过这里简洁多了,因为之前并没有创建,所以需要
                                           //先调用父类无参构造器,再调用子类无参构造器
        k.YH();
        k.YHH();
       // k.YM();//这里报错
    }
}


都看到这了,教你一个秘籍------点赞,收藏,加关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值