什么是抽象方法

Java抽象类与方法详解

前言:在读这篇文章的同学大概率是一位初学者,这一阶段应该是javase最困难的时候(多态性以及面向接口编程),也是最重要的时候。提前祝大家把这该死的java学完!!!(本文不会重点讲接口)

  

1,抽象方法的特点

(1)抽象方法是一个不完整的方法,没有方法体。

(2) 抽象方法一定是抽象类,抽象的类里不一定有抽象方法 (接口中的方法一定是抽象方法!)

(3)抽象方法和类都要由abstract 修饰

(4)抽象类不能通过new 来实例化,抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调                   用。如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

加深下各位的理解,打个比方:

            

1.不完整的方法 没有方法体 那你想想 你和太监的区别

2.你把抽象类比作人,太监也是人呀! 但不是人人都是太监呀!要割了才是  割==抽象方法    你说是不是呀  亲!

3.要关键词修饰我就不打比方了。

3.抽象类不能new 对象  这个好理解 一个太监 要对象干嘛? 又不能干啥!娶过来看吗? 所有说 你new 没有任何意义 因为抽象方法没有方法体呀! 

2. abstract 关键字,和哪些关键字不能共存。
final:被final修饰的类不能有子类(不能被继承)。而被abstract修饰的类一定是一个父类(一定要被继承)。
private: 抽象类中的私有的抽象方法,不被子类所知,就无法被复写。  而抽象方法出现的就是需要被复写。
static:如果static可以修饰抽象方法,那么连对象都省了,直接类名调用就可以了。可是抽象方法运行没意义。

好了! 这个我就先写到这里,这篇博文是我刚刚学java写的学习笔记!2018.7.13 写的,偶然翻到,一看是我阅读最多的,我就想 换种好理解的方式在写一次。希望对大家有些帮助! 大家继续努力吧! 文中有不理解的 你可以到下面留言,有时间我会回复你的!

### Java中的抽象方法及接口中的方法是否全部为抽象方法 #### 抽象方法的定义 在Java中,抽象方法是一种没有方法体的方法,由`abstract`关键字修饰。抽象方法的具体实现需要由其子类根据自身需求来完成[^1]。抽象方法的定义方式通常为:`修饰符 abstract 返回类型 方法名();`。例如: ```java public abstract void move(); ``` #### 抽象类的特性 抽象类使用`abstract`关键字声明,可以在`class`关键字前添加`abstract`修饰符。抽象类具有以下特性: - 抽象类不能被实例化,即无法创建抽象类的对象。 - 抽象类中不一定包含抽象方法,但包含抽象方法的类必须声明为抽象类。 - 抽象类可以包含构造方法,用于初始化子类或供子类调用。 - 抽象类的子类必须实现父类中的所有抽象方法,除非子类本身也是抽象类[^3]。 例如,以下是一个抽象类的示例: ```java public abstract class Animal { public abstract void makeSound(); // 抽象方法 } ``` #### 接口中的方法是否全部为抽象方法Java 8之前,接口中的方法默认是抽象的,并且需要用`public`和`abstract`修饰(尽管这两个修饰符可以省略)。然而,从Java 8开始,接口可以包含非抽象方法,例如默认方法(`default`)和静态方法(`static`)。这意味着接口中的方法并非全部为抽象方法[^4]。 以下是接口中包含默认方法和静态方法的示例: ```java public interface MyInterface { void abstractMethod(); // 抽象方法 default void defaultMethod() { // 默认方法 System.out.println("Default method implementation"); } static void staticMethod() { // 静态方法 System.out.println("Static method implementation"); } } ``` #### 实现接口的要求 当一个类实现接口时,必须提供接口中所有抽象方法的具体实现,除非该类本身声明为抽象类。如果类未实现接口中的所有抽象方法,则编译器将报错[^4]。 ### 总结 - 抽象方法是由`abstract`关键字修饰、没有方法体的方法,其实现由子类完成。 - 抽象类可以包含构造方法、普通方法和抽象方法,但不能被实例化。 - 接口中的方法并非全部为抽象方法,从Java 8开始,接口可以包含默认方法和静态方法。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值