打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
抽象类的概述和讲解
/*
抽象类的概述:
    把一个不是具体的功能成为抽象的功能,而一个类中如果有抽象的功能,该类一定是抽象类。
抽象类的特点:
    A:抽象类和抽象方法必须使用abstract关键字修饰。
    B:抽象类中不一定有抽象方法,但有抽象方法的类必须定义为抽象类。
    C:抽象类不能实例化
         因为它不是具体的。
抽象类有构造方法,但不能实例化。
用于子类访问父类数据的初始化。
    D:抽象类的子类
       a:如果不想重写抽象方法,该子类是一个抽象类。
       b:重写所有的抽象方法,这个时候子类是一个具体的类
抽象类的实例化其实是靠具体子类实现的,是多态的方式。
 
 
*/
=====================A测试 练习一=================================
 class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Student extends Person{
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译报错:
Test.java:1: Person 不是抽象的,并且未覆盖 Person 中的抽象方法 run()
 class Person{
===========================B测试练习一=============================
abstract class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:编译正确
=======================C测试练习一==============================
abstract class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Test{
 public static void main(String [] args){
 Person p =new Person();
 }
}
结果:
编译报错:
Test.java:10: Person 是抽象的;无法对其进行实例化
        Person p =new Person();
                  ^
=============================D a测试练习一=============================
abstract class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Student extends Person{
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译报错:
Test.java:7: Student 不是抽象的,并且未覆盖 Person 中的抽象方法 run()
class Student extends Person{
^
=============================D b测试练习=========================
abstract class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Student extends Person{
 public  void run(){
  System.out.println("学生会跑");
 }
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译正确。
==========================总结===========================
abstract class Person{
  public abstract void run();
  public void eat(){
  System.out.println("人会吃饭");
 }
}
class Student extends Person{
 public  void run(){
  System.out.println("学生会跑");
 }
}
class Test{
 public static void main(String [] args){
  Person p =new Student();
  p.run();
 }
}
结果:
学生会跑
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java中的匿名内部类总结
内部类之匿名内部类
最全的Java笔试题库之选择题篇-总共234道【1~60】
Java抽象类 详解
Java 2 实用教程(第5版)耿祥义版 习题五
抽象类能实例化吗
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服