继承

在继承的关系,“子类就是一个父类”,也就是说,子类可以被当作父类看待。
例如父类是员工,子类是讲师,那么“讲师就是一个员工”,关系:is-a;

定义父类夫人格式:(一个普通的类定义)
public class 父类名称{
//''''''
}

 定义子类的格式
 public class 子类名称 extends 父类名称{
 //
 }

extends 就是用来连接子类和父类的关键字

例子

/*
定义一个父类:员工
 */
public class Employee {
    public void method() {
        System.out.println("方法执行!");
    }
}
//子类
public class  Teacher  extends Employee{

}


//定义另一个子类,助教
public class Assistant extends Employee {
}
//主函数调用
public class Demo01Extends {
    public static void main(String[] args) {
        //创建了一个子类对象
        Teacher teacher = new Teacher();
        //teacher类当中虽然什么都没有写,但是会继承来自父类的method方法。
        teacher.method();

        //创建了另一个子类助教对象
        Assistant assistant = new Assistant();
        assistant.method();
    }
}

访问父成员变量和本类成员变量的方法对比

局部变量:   直接写成员变量名
本类的成员变量:  this.成员变量名
父类的成员变量:  super.成员变量名
/*
在父子类的继承关系当中,创建子类对象,访问成员方法的规则。
  创建的对象是谁,优先用谁,如果没有则向上找。

  注意事项:
  无论是成员方法还是成员变量,如果没有都是向上找父类,绝不会向下找子类的。

  重写(Override)
  概念,在继承关系当中,方法的名称一样,参数列表也一样。

  重写(Override):方法的名称一样,参数列表【也一样】,覆盖,覆写。
  重载(Overload):方法的名称一样,参数列表【不一样】。

  方法的覆盖重写特点:创建的是子类对象,则优先用子类方法。
 */
public class Demo01ExtendsMethod {
    public static void main(String[] args) {
        Zi zi = new Zi();

        zi.methodsFu();
        zi.methodsZi();

        //创建的是new子类对象,所以优先用子类方法
        zi.methods();
    }
}
public class Fu {
    public void methodsFu(){
        System.out.println("父类执行");
    }
    public void methods(){
        System.out.println("父类重名方法执行!");
    }
}



public class Zi  extends  Fu{
    public void methodsZi(){
        System.out.println("子类对象执行");
    }
    public void methods(){
        System.out.println("子类重名方法执行!");
    }
}

知识点总结

方法覆盖重写的注意事项:
1.必须保证父子类之间方法的名称相同,参数列表也相同。
@Override:写在方法前面,用来检测是不是有效的正确覆盖重写。
这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。
2.子类方法的返回值必须小于等于父类方法的返回值范围。
前提:Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。

3.子类方法的权限必须{大于等于}父类方法的权限修饰符。
小扩展提示:public >protected>(default)空白不写>private
备注:(default)不是关键字default,而是什么都不写,留空。

感想

再加油!

你可能感兴趣的:(java)