继承

public class Application { public static void main(String[] args) { Person person=new Person(); Student student=new Student(); //student.test("张三"); //student.test1(); }
//学生 is 人 :派生类 ,子类 //子类继承了父类,就会拥有父类1的全部方法! public class Student extends Person { public Student(){ //隐藏代码:调用了父类的无参构造 super(); //调用父类的构造器,必须要在子类的第一行 System.out.println("Student无参执行了"); } private String name="lisi"; public void print(){ System.out.println("Student"); } public void test1(){ print(); this.print(); super.print(); } public void test(String name){ System.out.println(name); //张三 System.out.println(this.name); //lisi System.out.println(super.name); //zhangsan } }
//Person 人:父类 public class Person { public Person(){ System.out.println("Person无参执行了"); } protected String name="zhangsan"; //私有的无法被继承 public void print(){ System.out.println("Person"); } }
super注意点:
1.super调用父类的构造函数,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中!
3.super 和 this 不能同时调用构造函数!
Vs this:
代表的对象不同:
this:本身调用着这个对象
super:代表父类对象的应用
前提:
this:没有继承也可以使用
super:只能在继承条件下可以使用
构造方法:
this():本类的构造
super():父类的构造
重写:需要继承关系,子类写父类的方法!
1.方法名必须相同
2.参数列表必须相同
3.修饰符:范围可以扩大但不能缩小; public>Protected>Default>private
4.抛出的异常:范围,可以被缩小,但不能扩大; ClassNotFoundException -->Exception(大)
重写,子类的方法和父类必须要一致:方法体不同!
为什么要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
Alt + Insert : override

浙公网安备 33010602011771号