abstract 抽象

abstract 抽象

类:不能具体实例化的类,不能创建对象。

1.不能new这个抽象类。只能靠子类去实现它:约束!--- 所以我们不能用final修饰

我们所谓的new是指:抽象类类名 抽象类对象名 = new 抽象类类名(参数可能有可能无) 这种形式

一个类继承抽象类之后,必须重写抽象类中的抽象方法,不想重写,则子类也有变成抽象类

2.抽象类可以有抽象方法和非抽象方法,成员方法,构造方法,成员变量

3.只要包含一个抽象方法,那么类必须为抽象类

//抽象类
public abstract  class Student {
    //成员变量
    String name = "Animal";
 
    // 抽象方法
    public abstract void run ();
    
    // 成员方法
    public void eat (){
        //不能实例化抽象类,抽象方法没有方法体,实例化干啥
        //Student s = new Student();
        
        //忽略内部类实现
        Student s = new Student() {
            @Override
            public void run() {
                
            }
        };
    };
}
​
​
public  class  Test2 extends Student{
    //一个类继承抽象类之后,必须重写抽象类中的抽象方法
    @Override
    public void run() {}
}
​
  //不想重写,则子类也有变成抽象类
public abstract class  Test3 extends Student{
  
   /** 
     @Override
     public void run() {}
    */
     public static void main(String[] args) {
        iterator1 iterator1 = new iterator1() {
            @Override
            public void run() {
                System.out.println("1111111");
            }
        };
       
    }
}

 

方法:不能具体实现的方法,没有方法体。

补充

一个类中包含抽象方法,那么类也必须为抽象类

//抽象类
public abstract  class Student { 
    // 抽象方法
    public abstract void run ();
  }

普通类和抽象类有哪些区别?

抽象类能使用 final 修饰吗?

不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final不能修饰抽象类

posted @ 2023-02-12 23:23  早日月薪五万  阅读(23)  评论(0编辑  收藏  举报