abstract Java 关键字

本文介绍Java中的抽象类和抽象方法的概念及其使用方式。抽象类不能直接实例化,但可以被继承;抽象方法需要在子类中实现。文章还讨论了抽象类与抽象方法的规则及限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

abstract作为修饰符,可以修饰类和方法。
  1.抽象类: 不能手动创建对象(JVM可以创建抽象类的对象),但是可以声明抽象类型的引用。
  public class TestAbstract1{
  public static void main(String[] args){
  //Animal a=new Animal(); //error
  Animal a=null;
  a=new Dog();
  }
  }
  abstract class Animal{
  }
  class Dog extends Animal{
  }
  2.抽象方法:有方法名的定义,没有实现,(只定义了能做什么,没定义怎么做)
  抽象方法的好处是允许方法的定义和实现分开。
  abstract class Animal{
  public abstract void eat();
  }
  抽象类和抽象方法的关系:含有抽象方法的类一定是抽象类,抽象类里不一定含有抽象方法
  抽象类存在的意义是用来被继承的。一个类继承了一个抽象类,必须实现抽象类里面所有的抽象方法,否则,此类也是抽象类。
  abstract class Animal{
  public void run(){}
  public abstract void sleep();
  public abstract void eat();
  }
  class Dog extends Animal{
  public void sleep(){
  System.out.println("Dog sleep.");
  }
  public void eat(){
  System.out.println("Dog eat.");
  }
  }
  abstract class Cat extends Animal{
  public void eat(){
  System.out.println("Cat eat.");
  }
  }
  可以声明父类类型子类对象,利用多态调用抽象方法
  public class TestAbstract1{
  public static void main(String[] args){
  Animal a=null;
  a=new Dog();
  a.sleep();
  a.eat();
  }
  }
  抽象类有构造方法,有父类的,也遵循单继承的规律
  class E{}
  abstract class Animal extends E{
  public Animal(){
  super();
  }
  }
  3.多种修饰符的连用问题:
  public protected default private static final abstract
  可以连用:
  public static
  private static
  public final
  public static final
  不可以连用:abstract final void eat();
  private abstract void eat();
  static abstract void eat();
  abstract不能和final,private,static连用

=========================================

abstract Java 关键字
abstract 关键字可以修改类或方法。

abstract 类可以扩展(增加子类),但不能直接实例化。

abstract 方法不在声明它的类中实现,但必须在某个子类中重写。

示例
  public abstract class MyClass
  {
  }
    public abstract String myMethod();
  注释
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。

abstract 类不能实例化。

仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类。

如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。

abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。

final 类的方法都不能是 abstract,因为 final 类不能有子类。

本文来自:我爱研发网(52RD.com) - R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_thank_13490.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值