继承、super、this、抽象类

本文主要介绍了Java中继承和抽象的相关知识。继承可解决代码重复问题,子类能使用父类非私有属性和行为,有单继承、多层继承等特点,还介绍了成员访问特点、super和this的用法。抽象类是信息不足描绘具体对象的类,不能创建对象,有抽象方法的类一定是抽象类,子类需重写父类抽象方法。

一. 继承


1.继承

创建多个同一种类的事物,其中会出现大量重复的代码,我们可以使用继承来解决这个问题.

2.格式和特点

public class  类A extends 类B{

    //类A是子类
    //类B是父类
}

继承的特点

  • 子类可以(继承)使用父类所有非私有的属性和行为

子父类的特点

  • 子类只能继承一个父类,Java是单继承
  • 父类可以有多个子类
  • 子类的父类还可以继承父类,Java可以多层继承

 

3.继承之后成员的访问特点

(1)子父类成员变量不同名

  •     使用无影响

(2)子父类中成员变量同名

  •     使用子类的成员变量

(3)子父类中成员方法不同名

  •     使用无影响

(4)子父类中成员方法同名

   方法的重载

  •         同一类中,方法名相同,参数不同,与返回值类型,修饰符无关

   方法的重写(override)

  •          子父类中出现一模一样的方法(子类的权限≥父类的权限)

   访问特点

  •          使用的是子类中的成员方法

   重写的使用场景

  •          子类觉得父类的方法, 不够好, 子类就重写父类的方法.

使用子类对象调用属性或者行为:

         子类有就用子类,没有就找父类,父类有就用父类,父类没有就报错

 

4. super和this

含义

  • super:表示父类的引用
  • this:表示本类对象. 谁调用我,我就代表谁

父类优先于子类存在.

父类与子类的执行顺序:

  1. 父类的静态成员变量和静态代码块
  2. 子类的静态成员变量和静态代码块
  3. 父类成员变量和初始代码块
  4. 父类构造方法
  5. 子类成员变量和初始代码块
  6. 子类构造方法

用法

  • 普通使用
    • this.属性:   每一个对象中的属性都是对象中自己的,谁调用这个方法,this就代表哪个对象
    • this.方法():  
    • super.属性:  仅使用于子父类中属性同名
    • super.方法():  仅使用于子父类中方法同名
  • 构造中的使用
    • this(参数):  调用本类的构造方法
    • super(参数):  调用父类的构造方法
  1. 每个构造方法的第一行都会默认生成   super()  ,调用父类的空参构造
  2. this()和super()只能在构造方法的第一行,所以不能同时出现
  • super() 应用
    • 子父类继承的情况下,父类中有私有的属性和对应的构造方法,子类也需要有对应的构造方法,子类的构造方法需要给成员变量赋值

public class Fruit {
	String name;
	String color;

	public Fruit() {
	}

	public Fruit(String name) {
		this.name = name;
	}
	public Fruit(String name, String color) {
		this.name = name;
		this.color = color;
	}
}


public class Apple extends Fruit{

	public Apple() {
	}
	public Apple(String name, String color) {
		super(name);    //没有用this.name = name 而是使用super()调用父类的
		this.color = color;
	}
}


 

二.抽象


1.抽象类的概念

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

2.格式

//抽象类
public abstract class 类名{

}


//抽象方法
public abstract void 方法名();

创建一类事物的共性的类时,将这个类定义为抽象类,其中共性的方法定义为抽象方法.

3.抽象的特点

  1. 抽象类不能创建对象
  2. 不能创建对象,但是也具有构造方法,仅用于给子类初始化
  3. 抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类(接口)
  4. 子类必须重写父类的抽象方法.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值