码迷,mamicode.com
首页 > 编程语言 > 详细

Java:抽象类、抽象方法

时间:2021-04-22 16:09:17      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:开发效率   code   技术   dea   person   idea   文件查看   提高   nbsp   

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

 

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

 

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

 

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

 

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

 

 1 package com.jiemyx.oop.demo12;
 2 
 3 //abstract的作用:约束,有人帮我们实现,一个有些规则的框架,具体的情况需要子类来实现
 4 
 5 //abstract  抽象类
 6 public abstract class Person {
 7 
 8     //abstract  抽象方法,只有方法名,没有方法的实现。 有抽象方法,它的类必须是抽象类
 9     public abstract void run();
10 
11     public abstract void sleep();
12 
13     //抽象类中可以存在不是抽象的方法
14     public void eat(){
15 
16     }
17 
18 }
19 
20 //1、抽象类不能new关键字去创建对象,只能靠子类去实现它,约束!
21 //2、抽象类可以写普通的方法
22 //3、抽象方法必须在抽象类中
23 
24 //抽象的抽象:本身类就是抽象的(不具体的),然后在这个类上再抽象一次。
25 
26 //抽象类的存在意义:提高开发效率
27 
28 //抽象类中存在构造方法(构造器)

 

 1 package com.jiemyx.oop.demo12;
 2 
 3 //extends:单继承,  接口可以实现多继承
 4 
 5 //抽象类的所以抽象方法,继承了它的子类,都必须实现它的抽象方法,否则会报错
 6 //除非,子类也是抽象方法    public abstract class A extends Person{}
 7 public class A extends Person{
 8     @Override
 9     public void run() {
10 
11     }
12 
13     @Override
14     public void sleep() {
15 
16     }
17 }

 

 1 package com.jiemyx.oop.demo12;
 2 
 3 public class Application {
 4     public static void main(String[] args) {
 5         //Person person = new Person();   //抽象类不可以new关键字创建对象
 6 
 7         //子类来实现
 8         A a = new A();
 9         a.run();
10         a.sleep();
11         a.eat();
12     }
13 }

 

抽象类不可以创建对象

技术图片

 

 

抽象类有构造方法(构造器)

使用IDEA软件,添加out目录,来查看class文件,是否有构造方法。

当然也可以直接去计算机中找到当前项目的out文件夹,找到对应的class文件查看

技术图片

 

 

技术图片

 

 

选择当前项目的out目录,点击OK

技术图片

 

 

技术图片

 

 

打开对应的class文件,可以看到abstract修饰的Person类(抽象类)也有构造方法(构造器)

技术图片

 

Java:抽象类、抽象方法

标签:开发效率   code   技术   dea   person   idea   文件查看   提高   nbsp   

原文地址:https://www.cnblogs.com/Jiemyx/p/14686904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!