【Java—–抽象类详解】

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。【Java—–抽象类详解】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

抽象类的概念

在Java中,一个没有方法体的方法应该定义为抽象方法。在所有普通方法上面都会有一对大括号{},这个表示方法体,有方法体的方法一定可以被对象直接使用。抽象方法是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰。

普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以含有构造方法,普通方法,static方法,常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分,抽象类也要使用abstract关键字声明。注意:抽象类中不一定有抽象方法(类只要使用abstract关键字声明就是抽象类,其中也可以没有抽象方法),有抽象方法的类一定是抽象类!!!

抽象类的特点

抽象类以及抽象方法的使用格式

抽象方法定义格式为:

修饰符 abstract 返回值类型 方法名 (参数列表);

注意:抽象方法的修饰符必须为public或protected(因为如果是private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public

示例:

public abstract void fun();

抽象类定义格式为:

abstract class 类名{

}

示例:

public abstract class Animal {
    public abstract void fun();
}

抽象类的实例化及使用

继承抽象类的子类要么重写抽象类所有的抽象方法(此时的方法重写,是子类实现父类的抽象方法),要么也声明为抽象类。

抽象类中可以有构造方法,但抽象类不能创建对象,抽象类只能通过子类对象实例化,抽象类中的构造方法是供子类创建对象时,初始化父类成员使用的,且依然满足先执行父类构造,再执行子类构造的顺序,这叫抽象类多态。

对于抽象类中的static方法,也可以在没有对象的情况下直接调用。

抽象类实例

//测试类
public class demo {
	public static void main(String[] args) {
		Animal a=new Cat();
		
		a.eat();
	}
}

//定义一个抽象类
public abstract class Animal {
	//定义一个抽象方法
	public abstract void eat();
}

//继承抽象类父类的子类
public class Cat extends Animal {
	//重写了抽象方法
	public void eat() {
		System.out.println("猫吃鱼");
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/153945.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!