Java学习笔记 -抽象类和接口

抽象类

1.什么是抽象类?

  • 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。
  • 类本身是不存在的,所以抽象类无法创建对象(无法实例化)

2.抽象类属于什么类型?

  • 抽象类属于引用类型

3.抽象类怎么定义?

  • [修饰符列表] abstract class 类名{}

4.抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
5.final 和 abstract 不能联合使用
6.抽象类的子类可以是抽象类
7.抽象类虽然无法实例化,但是有构造方法的,不过是供子类使用的( super() )
8.抽象类关联到一个概念:抽象方法

  • 抽象方法表示没有实现的方法,没有方法体的方法。如:public abstract void doSome();
  • 特点:没有方法体,以分号结尾。前面修饰符列表中有abstract关键字

9.抽象类中不一定有抽象方法,但是抽象方法一定出现在抽象类中。
10.抽象类是半抽象的,在抽象类中可以写抽象方法,也可以写普通方法.

10.重要结论:*****五颗星

  • 一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现
  • 这里的覆盖或者说重写,也可以叫做实现。(对抽象的实现)
    • 原因:如果不进行方法覆盖,那么就相当于抽象方法出现在了普通类中,是绝对不允许的。

抽象类有构造方法

public class AbstractTest{
	public static void main(String[] args){
		Cat c = new Cat();
	}
}
abstract class Aniaml{
	//有参数构造方法
	public Aniaml(int a){	
	}
}
class Cat extends Aniaml{
}

抽象方法只能出现在抽象类中

public class AbstractTest{
	public static void main(String[] args){		
	}
}
abstract class Aniaml{
	//抽象方法
	public abstract void move();
}

class Cat extends Aniaml{
	//如果不进行方法覆盖
	//那么就相当于抽象方法出现在了普通类中,是绝对不允许的
	//public void move(){}
}

猜你喜欢

转载自www.cnblogs.com/zy200128/p/12716473.html
今日推荐