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
    

你可能感兴趣的:(Java-abstract)