专业的JAVA编程教程与资源

网站首页 > java教程 正文

java基础学习——abstract抽象类(java 抽象)

temp10 2024-10-04 12:28:14 java教程 8 ℃ 0 评论

先附上一张虔诚的图!

java基础学习——abstract抽象类(java 抽象)

然后我们开始学习!

abstract是抽象类的关键字,是最重要的一个修饰符,可以修饰类和方法。分别叫做抽象方法和抽象类。人们在认识事物的时候,会把具有相同特征和行为的事物归为一个抽象类。比如动物就是一个很抽象的概念。当得到动物的实例时,总是某个具体物种的实例。所以说,在需要某个抽象类的实例时,只能够用某个具体类的实例来代替。抽象类不能实例化,不能生成抽象类的对象,但能定义一个引用。

abstract修饰类:

会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型。

抽象类就相当于一个类的半成品,需要子类继承并覆盖其中的抽象方法,这时子类才又创建实例的能力,如果子类没有实现父类的抽象方法,那么子类也要为抽象类。

abstract修饰方法:

会使这个方法变成抽象方法,也就是只有声明而没有实现,实现部分以“;”代替,需要子类继承实现。

抽象方法代表了某种标准,定义标准,定义功能,在子类中去实现功能(子类继承了父类并需要给出从父类继承的抽象方法的实现)。

方法一时间想不到怎么被实现,或有意要子类去实现而定义某种标准,这个方法可以被定义为抽象。

注意:

有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

当一个非抽象类继承自某个抽象类时,必须实现所继承抽象类的所有抽象方法,即抽象类的第一个非抽象子类必须要实现其父类所有的抽象方法。其中也包括了父类继承的抽象方法。

一个类中只要包含有抽象方法,那么这个类就必须被定义成抽象类,反之,即使一个类不包含任何抽象方法,这个类仍然可以被定义成抽象类。

abstract和final不能同时使用,这两个关键字有着相反的含义。abstract修饰方法和类,就是想让别人重写或者是继承的,而final是组织重写和继承的。private和abstract也不能同时修饰方法。因为private组织继承,也就阻止了重写实现,与abstract的意义相违背。

实例:

package javaBig;

/**

* 抽象类:abstract

* @author LENOVO

*抽象类可以没有抽象方法,有抽象方法的类必须是抽象类

*非抽象类继承抽象类必须实现所有的抽象方法

*抽象类可以没有方法实现和属性

*抽象类不能被实例化

*抽象类不能声明为final

*/

/**

* 接口:interface 接口是一组行为的规范、定义

* @author LENOVO

*

*/

public class javaAbstract {

public static void main(String[] args) {

// TODO 自动生成的方法存根

//Person p = new Person();//抽象方法不能被实例化

Man m = new Man();

m.eat();

Women n = new Women();

n.eat();

}

}

//具体类继承抽象类必须要实现抽象方法

class Man extends Person{

//实现抽象类的方法

public void eat() {

System.out.println("我是男人,我大口大口的吃饭");

}

}

class Women extends Person{

public void eat() {

System.out.println("我是女人,我吃饭细嚼慢咽");

}

}

abstract class Person{

private String name;

public void setName() {

this.name = name;

}

public String getName(String name) {

return name;

}

public abstract void eat();//没有实现,抽象方法

}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表