继承以及抽象笔记

1.方法重写要注意的事项:

  1. 方法重写是发生在子父类之间的关系。
  2. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
  3. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。
  4. 2.继承后构造器的特点:
  5. 子类构造器执行的时候,都会在第一行默认先调用父类无参数构造器一次。
    子类构造器的第一行都隐含了一个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(“炸鸡专卖店”);
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值