java基础09- 抽象类

Posted 林森001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础09- 抽象类相关的知识,希望对你有一定的参考价值。

抽象类

abstract修饰可以用来修饰方法也可以修饰类,如果修饰方法,该方法就是抽象方法;如果修饰类,该类就是抽象类。

抽象类中可以没有抽象方法,但是抽象方法的类一定要声明为抽象类。

抽象类,不能用new关键字来创建对象,它是用来让子类继承的。

抽象方法,只有方法的声明,没有方法的实现,它是来让子类实现的。

子类继承抽象类,就必须要实现抽象类没有实现的抽象方法,否则该类也要声明为抽象类。

例如下面例子

package com.mjh.oop.demo06;
/**
 *  abstract 抽象类 extends :单继承   接口可以实现多继承
 *  抽象方法必须在抽象类里,但抽象类里面可以普通方法
 */
public abstract class Abstract  {
    //有人帮我们实现
    // abstract 抽象方法 只有方法名,没有方法体

    public abstract void aaa();
    public void ss(){};
}

package com.mjh.oop.demo06;

/**
 * 一般的类要实现抽象方法,而且要重写抽象类中的抽象方法,否则这个一般类就要变为抽象类
 *子类可以不用重写抽象类里的一般方法
 */
public class Student  extends Abstract {
    @Override
    public void aaa() {
    }
    
    
    public static void main(String[] args) {
      //  new Abstract();//不能用new关键字创建对象,它由子类实现
        Student s=new Student();
        s.aaa();
        s.ss();
    }
}

接口

  • 关键字 interface

  • 利用接口可以间接实现多继承 implements

  • 接口中的所有定义的方法其实都是抽象的 public abstract

  • 接口中定义的变量一定是常量(不常用)

    比如我们定义了Person接口和Teacher接口

    在一般类里要实现接口就要实现接口中的所有方法

    package com.mjh.oop.demo06;
    
    public interface Person {
        //常量 public static final
        int AGE=66;
        /**
         * 接口的所有定义其实都是抽象的 public abstract
         */
        void add();
        void delete(String name);
        void update(String name);
        void query(String name);
    
    }
    
    package com.mjh.oop.demo06;
    
    public interface Teacher {
        void  teach();
    }
    
package com.mjh.oop.demo06;

/**
 * 抽象类:extends
 * 类  可以实现接口,implements接口
 * 实现了接口的类,就需要重写接口中的方法
 * 利用接口来间接实现多继承
 */
public class PersonImpl implements Person,Teacher{
    @Override
    public void add() {

    }

    @Override
    public void delete(String name) {

    }

    @Override
    public void update(String name) {

    }

    @Override
    public void query(String name) {

    }

    @Override
    public void teach() {

    }
}

以上是关于java基础09- 抽象类的主要内容,如果未能解决你的问题,请参考以下文章

JAVA---抽象类和接口基础知识详解(及两者异同点)

Java基础:封装

Java——基础知识——抽象类与抽象方法接口

Java15-java语法基础(十四)抽象类

Java基础 - 接口抽象类

Java基础继承抽象类注解