类特性(抽象类)

简介: 类特性(抽象类)

抽象类与抽象方法

  • 什么是抽象类:

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

  • 用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:非抽象方法子类继承的事情提高代码复用性

相关文章
|
6月前
|
Java
接口和抽象类的区别
接口和抽象类的区别
93 6
|
6月前
|
Java
抽象类和接口有什么区别?
抽象类和接口有什么区别?
|
25天前
抽象类和接口在实现多态时的区别
【10月更文挑战第19天】抽象类和接口在实现多态时都有其独特的作用。抽象类更适合用于定义一些具有共同特征和部分实现的类,而接口则更强调定义一组行为规范,以便不同的类可以实现并组合这些行为。
52 10
|
6月前
|
设计模式 搜索推荐 Java
java接口和抽象类的区别,以及使用选择
java接口和抽象类的区别,以及使用选择
78 0
|
2月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
117 5
|
6月前
|
Java
抽象类和接口的区别
抽象类和接口的区别
84 0
接口和抽象类有什么区别
接口和抽象类有什么区别
59 0
抽象类和普通类的区别
抽象类和普通类的区别
142 0