java基础之抽象类的介绍

抽象类的特点:

1.当方法只有声明没有具体实现的时候,需要用abstract修饰符修饰。抽象方法必须定义在抽象类当中,所以抽象类也需要用abstract修饰

2.抽象类不可以被实例化,为什么呢?

因为调用抽象方法没有意义

3.抽象类的子类必须覆盖所有的父类的抽象方法之后,子类才能够被实例化,否则子类也还是抽象类;

class A extends chouxiang {

@Override

void bark() {//只有覆盖了bark()方法,才能将A类实例化

// TODO Auto-generated method stub

System.out.println("你说呢");

}

}

public abstract class chouxiang {

abstract void bark();//必须让子类重写才有意义

private int bark(int a, int b) {//抽象类中可以有非抽象方法,即不需要子类必须重写该方法

return a + b;

}

public static void main(String[] args) {

A a = new A();

a.bark();//调用的是重写的无参的bark()方法

}

}

  • 抽象类中有构造函数吗?

有,用于对子类的初始化

  • 抽象类中可以没有没有抽象方法吗?

可以,但是很少见,目的就是不让子类创建对象

  • 抽象类不可以和哪些关键字使用

1.private:父类中的private修饰的方法对于子类不可见,即子类无法对方法进行覆盖

2.static:当使用static修饰的时候,就可以直接使用类名调用该方法了,那就不用让子类进行实现了;除此之外,即便直接调用了也只是一个方法声明,并没有意义。

3.final:abstract的意义在于让子类对修饰的方法进行覆盖,但是final却是不让方法进行覆盖,两者矛盾

  • 抽星类一定是个父类吗

是的,因为需要其子类覆盖其方法才有意义

时间: 2024-11-05 15:48:59

java基础之抽象类的介绍的相关文章

Java基础九--抽象类

Java基础九--抽象类 一.抽象类介绍 /*抽象类:抽象:笼统,模糊,看不懂!不具体. 特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. 抽象方法必须定义在抽象类中.该类必须也被abstract修饰.2,抽象类不可以被实例化.为什么?因为调用抽象方法没意义.3,抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化. 否则,这个子类还是抽象类. 1,抽象类中有构造函数吗? 有,用于给子类对象进行初始化. 2,抽象类可以不定义抽象方法吗? 可以的. 但是很

Java基础学习--抽象类与抽象函数

Java基础学习--抽象类与抽象函数 abstract class 抽象类不能制造对象,但是可以定义变量,赋给这个变量的一定是他非抽象子类的对象: 抽象类中的抽象函数没有函数体,例如:public abstract void move(); 一个抽象类可以没有任何抽象方法,所有的方法都有方法体,但是整个类是抽象的. 抽象类中所有的的抽象函数必需子类的覆盖,而非抽象函数不需要覆盖.因为子类会继承父类的函数,如果不去覆盖继承来的抽象函数,那么子类就含有抽象函数,含有抽象函数的类必须要声明为抽象类.

java基础-Eclipse开发工具介绍

java基础-Eclipse开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 所谓工欲善其事必先利其器,即将身为一名Java开发工程师怎么能没有一款好使的IDE呢?今天就为大家介绍一款功能强大的IDE,即Eclipse.它是Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,很多Java工程师都将Eclise作为首选开发工具,而且它还是免费开源的,尽管eclipse有些功能没有,但是你开源下载一些插件让其支持,这足以说明它的扩展性

Java基础之抽象类和接口

抽象类和接口 一.抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法 (1)必要性: 有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方法.需要用到抽象方法 例如:对于动物类,我们知道父类“动物”会叫,但是因为不同的动物叫的方法不同,而对于子类”狗“这个子类又必须用到“叫”这个方法.因此对于父类“动物”的“叫”方法不知道怎么去写.这里就用到抽象方法. 代码示例: 1 //抽象类讲解 2 public class test抽象类 {

java基础之抽象类

java的继承说完后..让我们来了解了解抽象类... 我们之前说过,将一件事物抽象成具体属性和方法后,并将其封装就是类了.如下图 我们将人的名字,性别,以及睡觉的方法扔进了类Person中,(专业术语:封装成Person类) 发现没,虽然我是说将人的属性,方法抽象封装成类...但是,你没发现我们抽象得过于具体了吗?没发现? 我之前说的,将人的属性,方法抽象后封装进类里面,但是......你难道不觉得name名字,sex性别太过于具体了吗?还有就是.人的确有睡觉这个方法(行为),当是,,你直接就将

Java基础:抽象类和接口

一.引言 基于面向对象五大原则中的下面两个原则,我们应该多考虑使用接口和抽象类: 里氏替换原则:子类可以通过实现父类接口来替换父类,所以父类应尽可能实现为接口/抽象类,方便拓展程序而不影响现有代码. 依赖倒置原则:和结构化设计不同,我们要让底层依赖于高层,而不是相反. 而设计接口和抽象类时尽量遵循面向对象五大原则中的"接口隔离原则",即使用专门接口比使用单一接口好.这个准则和针对类设计的"单一职责原则"对应. 备注:设计模式中有很多和接口和抽象类相关的模式,比如抽象

java基础之抽象类与接口的区别

在学习java的过程中,或者是在找工作笔试或面试的时候,如果你是java岗位,那么抽象类与接口的区别无疑是一个大热点,是各大公司都想要考的一个小知识点,下面是我为了9月份秋招自己总结的,若有不对的地方,欢迎指正. 此处,借鉴了http://www.cnblogs.com/dolphin0520/p/3811437.html,写的很不错. 一.抽象类 使用了abstract关键字所修饰的类叫做抽象类.抽象类无法实例化,也就是说,不能new出来一个抽象类的对象(实例). 抽象方法:使用abstrac

java基础知识--抽象类与接口

抽象类与接口 1.Java 抽象类 1.引言: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象, 这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 2.在Java语言中使用abstract class来定义

Java 基础:抽象类与接口

1.什么是抽象 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的, 有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化. 这样,抽象类也就诞生了. 例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法. 所以,抽象类是