类特性(抽象类)

简介: 类特性(抽象类)

抽象类与抽象方法

  • 什么是抽象类:

随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一 般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父 类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。

  • 用abstract关键字来修饰一个类,这个类叫做抽象类。
  • 用abstract来修饰一个方法,该方法叫做抽象方法。
  • 抽象方法:只有方法的声明,没有方法的实现。以分号结束: 比如:public abstract void talk();
  • 含有抽象方法的类必须被声明为抽象类。
  • 抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重 写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。
  • 不能用abstract修饰变量、代码块、构造器;
  • 不能用abstract修饰私有方法、静态方法、final的方法、final的类。
抽象类举例
class void A {
  abstract void m1(); 
  public void m2() {
  System.out.println("A类中定义的m2方法");
  }
}
class B extends A {
  void m1() {
  System.out.println("B类中定义的m1方法");
  }
}
public class Test {
  public static void main(String args[]) {
  A a = new B();
  a.m1();
  a.m2();
  }
}

作用:

抽象类是用来模型化那些父类无法确定全部实现,而是由其子类提 供具体实现的对象的类。

抽象类的特点:

A:抽象类和抽象方法必须用abstract关键字修饰

B:抽象类中不一定有抽象方法,但又抽象方法的类一定是抽象类

C:抽象类不能实例化 因为它不是具体的。抽象类又构造方法,但是不能实例化?构造方法的作用是什么呢?用于子类访问父类数据的初始化

D:抽象的子类

a:抽象类的子类是一个抽象类

b:重写所有的抽象方法,这个时候子类是是一个具体的类

抽象类的实例化其实是靠具体的子类实现的是多态的方式

Animal a = new Cat();

抽象类的成员特点:

成员变量:既可以是变量,也可以是常量

构造方法:有用于子类访问父类数据的初始化

成员方法:既可以是抽象的,也可以是非抽象的。

抽象类的成员方法特性:

A:抽象方法强制要求子类做的事情

B:非抽象方法子类继承的事情提高代码复用性

相关文章
|
2月前
|
Java
接口和抽象类的区别
接口和抽象类的区别
32 6
|
2月前
|
Java
抽象类和接口有什么区别?
抽象类和接口有什么区别?
|
2月前
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
35 0
|
2月前
|
Java
抽象类和接口的区别
抽象类和接口的区别
39 0
|
11月前
接口和抽象类有什么区别
接口和抽象类有什么区别
48 0
|
12月前
抽象类和普通类的区别
抽象类和普通类的区别
91 0
|
12月前
|
Java C++
接口与抽象类的区别
接口与抽象类的区别
抽象类、接口的区别和相似点(一)
抽象类、接口的区别和相似点(一)
117 0
抽象类、接口的区别和相似点(一)

热门文章

最新文章