1.方法重写要注意的事项:
- 方法重写是发生在子父类之间的关系。
- 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
- 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。
- 2.继承后构造器的特点:
- 子类构造器执行的时候,都会在第一行默认先调用父类无参数构造器一次。
子类构造器的第一行都隐含了一个super()去调用父类无参数构造器,super()可以省略不写。
3.super和this用法格式:
this.成员变量 – 本类的
super.成员变量 – 父类的
this.成员方法名() – 本类的
super.成员方法名() – 父类的
super(…) – 调用父类的构造器,根据参数匹配确认
this(…) – 调用本类的其他构造器,根据参数匹配确认
注意:
子类的每个构造方法中均有默认的super(),调用父类的空参构造.
手动调用父类构造会覆盖默认的super()。
super() 和 this() 都必须是在构造方法的第一行,所以不能同时出现。
super(…)是根据参数去确定调用父类哪个构造器的。
4.抽象(abstract)
abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。
定义格式:
修饰符 abstract 返回值类型 方法名(参数列表);
注意:
如果一个类包含抽象方法,那么该类必须是抽象类。注意:抽象类不一定有抽象方法,但是有抽象方法的类必须定
义成抽象类。
注:抽象方法不能创建键对象,但是具有抽象方法
抽象模板案例:
测试类:
package AbstractTest05;
public class Demo {
public static void main(String[] args) {
//调用对象
Yuan yuan = new Yuan();
yuan.Man();
JnL jnL = new JnL();
jnL.Man();
}
}
父类:
package AbstractTest05;
public abstract class Person {
private String id;
private String name;
private int age;
public Person(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public Person() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//创建抽象方法
public abstract void Man();
}
两个子类:
package AbstractTest05;
public class Yuan extends Person{
public Yuan(String id, String name, int age) {
super(id, name, age);
}
public Yuan() {
}
@Override
public void Man(){
System.out.println(“新消息”);
super.setId(“Jk456”);
super.setName(“路路通”);
super.setAge(31);
System.out.println(super.getId());
System.out.println(super.getName());
System.out.println(super.getAge());
System.out.println(“炸鸡专卖店”);
}
}
package AbstractTest05;
public class JnL extends Person{
public JnL(String id, String name, int age) {
super(id, name, age);
}
public JnL() {
}
@Override
public void Man(){
System.out.println(“新消息:”);
super.setId(“Jk452”);
super.setName(“专卖店”);
super.setAge(21);
System.out.println(super.getId());
System.out.println(super.getName());
System.out.println(super.getAge());
System.out.println(“炸鸡专卖店”);
}
}