Clase abstracta y método abstracto en Java

Una clase modificada con la palabra clave abstracto se llama un resumen de clase (clase abstracta) . Como:

abstract  class A  {
      abstract int min(int x,int y);
}

El método modificado con la palabra clave abstracta se denomina abstracta método (método abstracto) ,

Para los métodos abstractos , solo se permiten declaraciones, no se permiten implementaciones y no se permite el uso de final y abstract para modificar un método al mismo tiempo, por ejemplo:

abstract int min(int x,int y);

Entender la clase abstracta

( 1 ) Las clases abstractas pueden abstraer estándares de comportamiento importantes , que están representados por métodos abstractos. Es decir, la clase abstracta encapsula los estándares de comportamiento que debe tener la subclase.

( 2 ) El objeto declarado por la clase abstracta puede convertirse en el objeto de transformación superior del objeto de su subclase , llamando al método de anulación de la subclase, es decir, reflejando el comportamiento específico de la subclase según el estándar de comportamiento en la clase abstracta.

abstract class  GirlFriend  //抽象类封装了两个行为标准
{
	abstract void speak();
	abstract void cooking();
}

class ChinaGirlFriend extends GirlFriend 
{
	void speak(){
		System.out.println("你好!");
	}
	void cooking(){
		System.out.println("水煮鱼!");
	}
}

class AmericanGirlFriend extends GirlFriend
{
	void speak(){
		System.out.println("hello !");
	}
	void cooking(){
		System.out.println("roast beef!");
	}
}

class Boy
{
	GirlFriend friend;
	void setGirlfriend(GirlFriend f){
		friend = f;
	}
	void showGirlFriend(){
		friend.speak();
		friend.cooking();
	}
}

public class Example5_11
{
	public static void main(String args[]){
		GirlFriend girl = new ChinaGirlFriend();  //girl是上转型对象
		Boy boy = new Boy();
		boy.setGirlfriend(girl);
		boy.showGirlFriend();

		girl = new AmericanGirlFriend();
		boy.setGirlfriend(girl);
		boy.showGirlFriend();
	}
}

 

abstract class 机动车 
{
	abstract void 启动();
	abstract void 加速();
	abstract void 刹车();
}

class 手动挡轿车 extends 机动车
{
	void 启动(){
		System.out.println("踏下离合器,换到一档。");
		System.out.println("然后慢慢抬起离合器。");
	}
	void 加速(){
		System.out.println("踩油门!");
	}
	void 刹车(){
		System.out.println("踏下离合器,踏下刹车板。");
		System.out.println("然后将挡位换到一档。");
	}
}

class 自动挡轿车 extends 机动车
{
	void 启动(){
		System.out.println("使用前进档。");
		System.out.println("然后轻踩油门。");
	}
	void 加速(){
		System.out.println("踩油门!");
	}
	void 刹车(){
		System.out.println("踏下刹车板。");
	}
}

public class Example5_12
{
	public static void main(String args[]){
		机动车 car = new 手动挡轿车();
		System.out.println("手动挡轿车的操作:");
		car.启动();
		car.加速();
		car.刹车();

		car = new 自动挡轿车();
		System.out.println("自动挡轿车的操作:");
		car.启动();
		car.加速();
		car.刹车();
	}
}

Las tres características de los métodos abstractos son las siguientes:

  1. El método abstracto no tiene cuerpo de método
  2. El método abstracto debe existir en la clase abstracta
  3. Cuando la subclase reescribe la clase principal, debe reescribir todos los métodos abstractos de la clase principal.


Nota: No puede usar la modificación privada cuando usa palabras clave abstractas para decorar métodos abstractos, porque los métodos abstractos deben ser reemplazados por subclases, y si se usa una declaración privada, las subclases no pueden ser reemplazadas.

Las reglas de definición y uso de las clases abstractas son las siguientes:

  1. Tanto las clases abstractas como los métodos abstractos se declaran utilizando la palabra clave abstracta.
  2. Si un método se declara como abstracto, la clase también debe declararse como abstracta. En una clase abstracta, puede haber 0 ~ n métodos abstractos y 0 ~ n métodos concretos.
  3. No se pueden crear instancias de clases abstractas, es decir, no se pueden crear objetos con la nueva palabra clave.

 

Supongo que te gusta

Origin blog.csdn.net/qq_43629083/article/details/108692295
Recomendado
Clasificación