标签:开发效率 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类(抽象类)也有构造方法(构造器)
标签:开发效率 code 技术 dea person idea 文件查看 提高 nbsp
原文地址:https://www.cnblogs.com/Jiemyx/p/14686904.html