美文网首页
java se继承

java se继承

作者: 起名字真难难难 | 来源:发表于2020-02-09 10:44 被阅读0次

    继承

    是多态的前提
    主要解决:共性抽取,定义父类
    特点:子类可拥有父类的内容,子类还可拥有自己的内容
    在继承中,子类就是父类(父类有的我也有)


    图示

    重名

    父子类继承关系中成员变量重名,创建子类对象有两种方式

    1、直接通过子类对象访问成员变量,等号左边是谁,优先用谁

    public class Emploee {
        public void method(){
            System.out.println("父类方法执行");
        }
    }
    
    public class Teacher extends Emploee {
        public void method(){
            System.out.println("执行子类方法");
        }
    }
    
    public static void main(String[] args) {
            Teacher teacher=new Teacher();//创建teacher对象
            teacher.method();//teacher继承父类方法后可调用
        }
    
    执行结果

    2、间接通过子类成员方法访问成员变量,子类父类都没有编译报错
    该方法属于谁,优先用谁,没有则向上找

    public void methodfu(){
            System.out.println("父类方法");
        }
    
    public void methodzi(){
            System.out.println("子类方法");
        }
    
    fu.methodfu();
            zi.methodzi();
            zi.methodfu();//该方法属于父类方法,得出父类方法
    
    运行结果

    区分三种变量重名

    局部变量:直接写变量名
    子类成员变量:this.成员变量
    父类成员变量:super.成员变量

    public class Fu {
        int num=2;
    }
    
    public class Zi extends Fu{
        int num=3;
        public void method(){
            int num=4;
            System.out.println(num);
            System.out.println(this.num);
            System.out.println(super.num);
        }
    }
    
    运行结果

    成员方法访问的特点

    在父子类继承关系中,创建对象是谁,优先用谁,如果没有,向上找。

    public class Fu {
        public void method(){
            System.out.println("执行父类的方法");
        }
    }
    
    public class Zi extends Fu {
        public void method(){
            System.out.println("执行子类方法");
        }
    }
    
    public class Demo01ExtendMethod {
        public static void main(String[] args) {
            Zi zi=new Zi();
            zi.method();//创建子类对象,优先用子类方法
        }
    }
    

    无论成员方法还是成员变量,都向上找父类,不向下找子类

    public class Fu {
        public void method(){
            System.out.println("执行父类的方法");
        }
    }
    
    public class Zi extends Fu {
    
    }
    
    运行结果

    相关文章

      网友评论

          本文标题:java se继承

          本文链接:https://www.haomeiwen.com/subject/dsiwxhtx.html