<<Java>> 抽象类

简介: <<Java>> 抽象类

抽象类的概念


在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。


抽象类的功能


还是类,有类的基本功能:成员变量、成员方法和构造方法的访问方式和普通类一样。

不同与普通类:不能直接实例化对象

默认的访问

不能private修饰:编译报错:Error : ( ) java:非法的修饰符组合:abstract和private

不能被final和stastic修饰:因为抽象方法需要被子类重写

必修被继承,而且子类要重写父类的方法;否则子类也是抽象类要用abstract修饰

抽象类可以有构造方法供子类使用


抽象类的作用


抽象类本身不能实例化 要使用必须创建子类;

有些类的使用,在使用场景中只会用到子类,只会用父类;

而有些时候我们会不小心使用成父类,但是编译器又不会报错;

而抽象类就解决了这一问题!相当于多了一重编译器的校验!!


抽象类的方法


  • 抽象类分为 普通方法 和 抽象方法!
  • 抽象方法不能有 ‘ 体 ’(方法体的体),也就是说 不能加  { } ;因为这个括号就代表着体;
  • 子类必须重写抽象方法!

代码理解

public abstract class Animal {
    int age;
    String color;
    String name;
    public Animal(int age, String color, String name) {
        this.age = age;
        this.color = color;
        this.name = name;
    }
    public void bark() {//这是一个普通方法!
        System.out.println(name+"叫了一下!");
    }
//这是一个抽象方法!不能有方法体,必须由子类重写
    abstract public void walk();
}


相关文章
|
3月前
|
Java
Java抽象类与接口的技术性文章
Java抽象类与接口的技术性文章
31 1
|
3月前
|
Java
Java语言中的抽象类:深入解析与应用
Java语言中的抽象类:深入解析与应用
|
5天前
|
Java 编译器
Java中抽象类初探
Java中抽象类初探
7 0
|
1月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
|
1月前
|
网络协议 Java
Java面试题:什么是Java中的接口?与抽象类有什么区别?
Java面试题:什么是Java中的接口?与抽象类有什么区别?
23 0
|
2月前
|
Java 编译器
22. 【Java教程】抽象类
22. 【Java教程】抽象类
17 1
|
3月前
|
Java
Java的接口与抽象类的区别
Java的接口与抽象类的区别
|
3月前
|
Java
Java的抽象方法和抽象类
Java的抽象方法和抽象类
|
2月前
|
Java
Java编程不再难:一文看懂抽象类与接口的区别和联系!
【6月更文挑战第17天】在Java OOP中,抽象类与接口助你构建复杂应用。以图书管理系统为例,抽象类`Book`作为基类提供共享属性和方法,不直接实例化。接口如`HasChapters`和`HasIssues`定义特殊行为。抽象类支持部分实现,单继承,适合共享行为;接口仅含常量和抽象方法,多实现,强调行为规范。通过继承和实现,实现代码复用和系统扩展性。理解两者异同,是提升Java编程能力的关键。
26 0
|
2月前
|
Java 开发者 C++
Java面向对象的终极挑战:抽象类与接口的深度解析!
【6月更文挑战第17天】在Java OOP中,抽象类和接口助力代码复用与扩展。抽象类不可实例化,提供通用框架,适合继承;接口包含纯抽象方法,支持多态与松耦合。选择抽象类用于继承已有方法和状态,接口则适用于不相关类共享行为。Java 8后接口能含默认方法,增加设计灵活性。抽象类与接口常结合使用,以实现最佳设计,如`Shape`抽象类实现`Drawable`和`Selectable`接口,展现两者协同优势。理解和熟练运用这对概念是提升代码质量的关键。
22 0