Java-abstract

  • 含有抽象方法的必须声明为抽象类

    public abstract class Abc {
        ...
        public abstract String getInfo();
    }
    
  • 抽象类中可以包含字段和具体方法

    public abstract class Abc {
        ...
        private String name;
        public String getname(){
            return name;
        }
    }
    
  • 抽象类不能实例化

    new Abc();  //error
    
  • 抽象类可以定义对象变量,但是只能引用非抽象子类对象

    //定义类B,继承自类Abc
    public class B extends Abc {
        ...
        
        //子类需要实现超类的抽象方法,或者将其声明为抽象方法
        public String getInfo(){
            ...
        }
    }
    
    Abc abc = new B();
    abc.getInfo();
    
  • 在子类中实现的方法,定义出来的抽象类无法调用

    //定义类C,继承自类Abc
    public class B extends Abc {
        ...
        
        //子类需要实现超类的抽象方法,或者将其声明为抽象方法
        public String getInfo(){
            ...
        }
        public String getTest(){
            ...
        }
    }
    
    Abc abc = new C();
    abc.getTest();  //error
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。