精华内容
下载资源
问答
  • 抽象类中可以没有抽象方法,但抽象方法的一定是抽象类。所以,java 抽象类里面可以没有抽象方法。比如HttpServlet类。抽象类和普通类的区别就在于,抽象类不能被实例化,就是不能被new出来,即使抽象类里面没有...

    抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。 包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。所以,java中 抽象类里面可以没有抽象方法。比如HttpServlet类。抽象类和普通类的区别就在于,抽象类不能被实例化,就是不能被new出来,即使抽象类里面没有抽象方法。 抽象类的作用在于子类对其的继承和实现,也就是多态;而没有抽象方法的抽象类的存在价值在于:实例化了没有意义,因为类已经定义好了,不能改变其中的方法体,但是实例化出来的对象却满足不了要求,只有继承并重写了他的子类才能满足要求。所以才把它定义为没有抽象方法的抽象类



    链接:https://www.jianshu.com/p/214143d7871f

    展开全文
  • 比如 transaction.add(R.id.content, waitLookFragment); add方法没有方法体, 那为什么该方法实现功能,我好像也没找到什么继承了FragmentTransactino
  • 所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方法还要加一个关键字”abstract”来修饰。 例如: abstract function fun1(); ...
  • 抽象方法没有方法体

    千次阅读 2021-01-30 21:26:33
    抽象方法在父类不能实现,所以没有方法体。 // 这就是一个抽象类 abstract class Animal { // 动物会叫 public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象...

    抽象方法在父类中不能实现,所以没有方法体。

    // 这就是一个抽象类
    abstract class Animal {
        // 动物会叫
        public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有方法体。但在后续在继承时,要具体实现此方法。
    }
    
    展开全文
  • 抽象类是否可以没有方法和属性?

    千次阅读 2019-05-07 23:31:32
    抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。...没有抽象类方法的抽象类的存在价值在于:类已经定义好了,不能改变其中的方法体(实例化出来的对象满足不了要求),只有继...

    抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。 包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法。

    抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类(如HttpServlet)。但即使抽象类中没有抽象方法,也不能被new出来。

    没有抽象类方法的抽象类的存在价值在于:类已经定义好了,不能改变其中的方法体(实例化出来的对象满足不了要求),只有继承并重写了他的子类才能满足要求,所以才把它定义为没有抽象方法的抽象类。

    展开全文
  • 抽象类总结 : ① 声明 : 抽象类中使用 abstract 声明 ; ② 成员 : 抽象类中既可以定义正常属性和方法 , 又可以定义抽象的属性和方法 ;...⑤ 特征 : 抽象方法只能定义在抽象类中 , 正常类不能抽象方法 ;



    I . 抽象类总结



    抽象类总结 :

    ① 声明 : 抽象类中使用 abstract 声明 ;

    ② 成员 : 抽象类中既可以定义正常属性和方法 , 又可以定义抽象的属性和方法 ;

    ③ 继承 : 抽象类可以继承抽象类 , 抽象类也可以继承正常类 , 正常类可以继承抽象类 ;

    ④ 重写 : 抽象类中可以使用抽象方法重写正常方法 , 也可以进行正常的方法重写 ;

    ⑤ 特征 : 抽象方法只能定义在抽象类中 , 正常类中不能有抽象方法 ;



    II . 抽象类声明



    1 . 抽象类简介 : 抽象类不能被实例化 , 在 class 关键字前使用 abstract 修饰 ;


    ① 抽象类默认 open 修饰 : 抽象类 , 默认使用 open 关键字修饰 , 可以直接继承 ;

    ② 抽象方法默认 open 修饰 : 抽象方法 , 默认使用 open 关键字修饰 , 可以直接 override 重写 ;

    //使用 abstract 修饰抽象类 
    abstract class Student {
    }
    


    III . 抽象类中的 ( 正常 / 抽象 ) 的 ( 成员 / 方法 )



    0 . 抽象类内成员总结 : 抽象类中可以定义正常的成员和方法 , 也可以定义抽象的成员和方法 ;


    1 . 定义正常的属性和方法 : 抽象类中可以定义正常的 成员属性 和 成员方法 ;


    ① 正常成员属性 : 该成员属性可以是常量 , 也可以是变量 ;

    ② 正常成员方法 : 正常的方法 , 定义有方法体 ; 如果函数有方法体 , 不能声明为抽象方法 ;

    abstract class Student {
        //抽象类中定义普通常量
        val name: String = "Tom"
    
        //抽象类中定义普通变量
        var age: Int = 18
    
        //抽象类中定义正常方法
        fun say(){
            println("姓名 : ${name} , 年龄 : ${age}")
        }
    }
    

    3 . 定义抽象的属性和方法 : 抽象类中可以定义抽象的 成员属性 和 成员方法 ;


    ① 抽象属性 : 被 abstract 修饰的 常量 var 或 变量 val 属性 , 没有初始化值 , 没有 getter 和 setter 方法 ;

    abstract class Student {
        //抽象类中定义抽象常量 , 没有初始值 , 没有 get set 方法
        abstract val name: String
    
        //抽象类中定义抽象变量 , 没有初始值 , 没有 get set 方法
        abstract var age: Int
    }
    

    ② 抽象方法 : 使用 abstract 修饰的方法 , 没有方法体 ; 如果函数有方法体 , 不能声明为抽象方法 ; 如果类中有抽象函数 , 该类必须声明成抽象类 ;

    abstract class Student {
        //抽象类中定义抽象方法 , 没有方法体
        abstract fun say()
    }
    


    IV . 抽象类继承



    1 . 抽象类可以继承抽象类 :

    abstract class Father{
    }
    
    //抽象类可以继承抽象类
    abstract class Son : Father() {
    }
    

    2 . 抽象类可以继承正常类 : 该正常类必须使用 open 修饰 ;

    open class Father{
    }
    
    //抽象类可以继承正常类 , 该正常类必须使用 open 修饰
    abstract class Son : Father() {
    }
    


    V . 抽象方法的覆盖



    1 . 抽象方法覆盖 : 父类的正常的方法 , 可以在子类中使用抽象方法进行覆盖 ;


    ① 注意父类方法的 open 修饰符 : 抽象类中的正常方法 , 如果想要在子类中设置可以被重写 , 需要使用 open 修饰 ;

    ② 抽象函数与正常函数的继承 : 其抽象函数默认使用 open 修饰 , 可以直接重写 , 正常函数需要使用 open 修饰才能被 override 重写 ;


    2 . 将正常函数覆盖成抽象函数 : 将 Father 类的 open 改成 abstract 也是可以的 , 覆盖操作仍能成立 ;

    //该类可以是正常类 , 也可以是抽象类
    //  此处的示例是正常类 , 将 open 改成 abstract 也成立
    open class Father{
        open fun action(){ println("Father")}
    }
    
    //抽象类可以继承正常类 , 该正常类必须使用 open 修饰
    abstract class Son : Father() {
        override abstract fun action()
    }
    

    3 . 将正常函数覆盖成正常函数 : 正常函数都可以被覆盖成抽象函数 , 那么正常函数的正常覆盖 , 也可以进行 ; 将 Father 类的 open 改成 abstract 也是可以的 , 覆盖操作仍能成立 ;

    //该类可以是正常类 , 也可以是抽象类
    //  此处的示例是正常类 , 将 open 改成 abstract 也成立
    open class Father{
        open fun action(){ println("Father")}
    }
    
    //抽象类可以继承正常类 , 该正常类必须使用 open 修饰
    abstract class Son : Father() {
        //也可以将其重写成正常函数
        override fun action(){ println("Father") }
    }
    


    VI . 抽象方法的实现



    抽象方法实现 :


    ① 正常类子类 : 正常的类继承抽象类必须实现 abstract 抽象方法 ;

    abstract class Father{
        abstract fun action()
    }
    
    //正常类继承抽象类 , 必须实现抽象类中的抽象方法
    class Son : Father() {
        override fun action() {
            println("正常类继承抽象类 , 必须实现抽象类中的抽象方法")
        }
    }
    

    ② 抽象类子类 : 如果抽象类继承抽象类 , 可以不实现父累抽象方法 ;

    abstract class Father{
        abstract fun action()
    }
    
    //抽象类继承抽象类 , 可以不实现抽象方法
    abstract class Son : Father() {
    }
    
    展开全文
  • Java中抽象类和抽象方法的区别

    千次阅读 2017-03-02 10:47:18
    抽象方法:在类中没有方法体的方法,就是抽象方法。 抽象类:含有抽象方法的类就叫抽象类抽象类中的抽象方法必须被实现!如果一个子类没有实现父类的抽象方法,则子类也成为了一个抽象类抽象类中的普通方法,...
  • 抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类...
  • 抽象方法:使用了abstractr修饰的方法,没有方法体,并且子类必须重写这个方法; 抽象类:包含了抽象方法的类,必须是抽象类,可以存在其他方法,但抽象方法一定存在于抽象类抽象类的使用要点: 1.通过抽象类,...
  • [Java基础]Java中抽象类和接口中有构造方法吗?

    万次阅读 多人点赞 2017-07-05 10:56:13
    2.问题描述:Java中抽象类和接口中有构造方法吗? 3.问题解答: (1)Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces ...
  • java抽象类有构造方法吗?

    千次阅读 2020-05-27 21:50:09
    没有方法体,没有{},以; 结尾. 非抽象方法 void sleep(){ syso .... } 抽象类子类: 1.非抽象类,但是必须重写父类的抽象方法 2.抽象类,无须管抽象方法,但是子类不能new了 抽象类中,构造方法,但是...
  • 里面定义的没有方法体的方法就是抽象方法,在方法声明的时候没有大括号以及其中的内容,另外在声明抽象方法的时候,还要加上关键字abstract来修饰。 例如: abstract function fun1(); abstract function fun2...
  • 1)接口不能构造方法,抽象类可以。...2)接口不能有方法体抽象类可以。 3)接口不能静态方法,抽象类可以。 4)在接口凡是变量必须是public static final,而在抽象类中没有要求。 ...
  • 如何调用抽象类中的非抽象方法

    千次阅读 2020-10-18 15:40:28
    如何调用抽象类中的非抽象方法 1.抽象类就是不能使用new方法进行实例化...抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实
  • 抽象方法:在类中没有方法体的方法,就是抽象方法。 抽象类:含有抽象方法的类就叫抽象类抽象类中的抽象方法必须被实现!如果一个子类没有实现父类的抽象方法,则子类也成为了一个抽象类抽象类中的普通方法...
  • package zhangsan.lisi;...//没有方法体的方法叫做抽象方法,必须用abstract修饰,如果抽象方法,该类一定是抽象类  // 注意这里的没有方法体的意思就是没有{}来实现,如果加了大括号就不能声明为
  • 读源码的时候关键地方卡住了,在一个方法的结尾把数据作为参数调用了一个抽象类的方法,这个方法不是抽象方法,方法体也是空的,这个抽象类的子类只有一个,而且也没有实现这个方法,那这些数据到底了什么地方呢?...
  • 1、如果一个类中有一个方法是抽象方法,则这个类就是抽象类; 2、抽象类必须加上abstract关键字修饰; 抽象方法: 定义:一个方法如果没有方法体,则这个方法就是抽象方法 1、一个方法没有方法体,直接用分号结束的...
  • Java抽象类 详解

    万次阅读 多人点赞 2016-10-05 00:06:35
    一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类可以包含构造方法、普通方法、static方法、...而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修
  • 11.抽象类必须要抽象方法吗?

    千次阅读 2020-07-26 22:07:01
    java的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。 抽象方法与抽象类: 当一个方法为抽象方法时,意味着这个...
  • 抽象方法:只声明而未实现的实体(即抽象方法没有方法体) 所有的抽象方法和抽象方法所在的类都要使用abstract关键字定义,用abstract关键字定义的抽象方法所在的类称为抽象类 抽象类中包含抽象方法,抽象方法...
  • C#抽象类、抽象属性、抽象方法

    千次阅读 2020-06-10 00:51:31
    前言:本博文讲述了C#面向对象抽象类,通过本博文的阅读,读者可以掌握C#抽象类的概念、应用、好处以及一些特性。 文章目录一、抽象类概念二、示例讲解三、抽象类的作用四、使用抽象类的好处五、抽象类总结 一、...
  • 抽象类、抽象函数/抽象方法详解

    千次阅读 2018-06-13 23:55:23
    抽象类、抽象函数/抽象方法详解 C#抽象类运用 ...抽象父类的 抽象函数 是不完整的,只有方法名和参数,并没有方法体 任何继承于抽象类的子类,都需要重 写父类(抽象类) 的所有 抽象函数/抽象方法
  • 抽象方法没有方法体 抽象成员只能存在于抽象类中 抽象类可以非抽象成员(侧重族群的概念) 抽象类的子类必须实现抽象方法体 抽象类you构造函数 抽象类只能用作基类,无法实例化(new) 抽象类不能被实例化。 抽象类...
  • java抽象类和模板方法模式

    千次阅读 2018-03-01 17:11:41
    抽象类不能进行实例化,因为在抽象类中存在抽象方法,抽象方法没有方法体,无法被调用,抽象类的对象需要依靠子类向上转型的方式得到。2.抽象方法必须为public或者protected,因为抽象方法需要子类来实现。3.抽象类...
  • JAVA抽象类和抽象方法

    千次阅读 2019-03-15 17:10:15
    (1)没有方法体{},必须使用abstract关键字来修饰。 (2)不能直接调用,只能被重写才能使用。 2,抽象类 (1)如果一个类中有一个方法是抽象的,那么这个类就必须是抽象类。 (2)抽象类也必须使用abstract来修饰 ...
  • 抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,818
精华内容 69,127
关键字:

抽象类中有没有方法体