技术干货首页投稿(暂停使用,暂停投稿)程序员

Java 抽象类和抽象函数

2016-09-28  本文已影响0人  Sia_Coding

什么是抽象类?当然是比类还抽象的类了=。=
本文基于Mars老师的Java4Android视频。

抽象函数

只有函数的定义,而没有函数体的函数。

//没有花括号 { }
abstract void fun() ; 

抽象类

抽象类的语法特征:

抽象类的作用

不能生成对象,要抽象类做什么呢?

举个例子
建一个抽象类,包含一个抽象函数eat()

abstract class Person {
        //抽象类可以有构造函数
    Person() {
        System.out.println("Person`s constructor");
    }

    String name;
    int age;
    void introduce() {
        System.out.println("My name is " + name + ",I`m "+ age + " years old"); 
    }
    
    abstract void eat();
}

Chinese作为Person的子类。如果不重写eat,类名前就必须加上abstract。当然这样做,继承就没什么意义了,因此我们重写eat方法。

class Chinese extends Person {
    Chinese() {
        //系统执行了super();
        System.out.println("Chinese`s constructor");
    }

    void eat() {
        System.out.println("Chinese food saikou~~~~");
    }
}

这里不能生成Person对象,因为它是抽象类。

class Test {
    public static void main(String args []) {
        //向上转型
        Person p = new Chinese();
        p.name = "sia";
        p.age = 22;
        p.introduce();          
        p.eat();
    
    } 
}

结果:

上一篇 下一篇

猜你喜欢

热点阅读