首页 > 其他分享 >抽象类

抽象类

时间:2023-11-02 11:59:14浏览次数:20  
标签:子类 void move 抽象 抽象类 public

什么情况下使用抽象方法?

通过抽象类,可以避免设计子类设计的随意性。通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用。(程序的可扩展和可维护性)

父类的名称比较抽象,创建对象无意义。例:Animal,创建动物类无意义,所以可以定义为抽象类。因为每个动物都有不同的叫声,所以可以定义abstract move();

抽象类和抽象方法的基本用法

//抽象类
abstract class Animal {
    abstract public void move();  //抽象方法
}
class Dog extends Animal { 
    //子类必须实现父类的抽象方法,否则编译错误
    public void move() {
        System.out.println("四肢跑!");
    }
    public void seeDoor(){
        System.out.println("看门中....");
    }
}
class Shark extends Animal { 
    //子类必须实现父类的抽象方法,否则编译错误
    public void move() {
        System.out.println("尾巴游!");
    }
  
}
//测试抽象类
public class TestAbstractClass {
    public static void main(String[] args) {
        Dog a = new Dog();
        a.move();
        a.seeDoor();
        Shark b=new Shark();
        b.move();
    }
}

 

 

动物类,现实中就是抽象的,动物移动,具体使用怎样移动没有办法确定,只能子类确定,但只要是动物肯定有移动这个功能。

 

标签:子类,void,move,抽象,抽象类,public
From: https://www.cnblogs.com/szmtjs10/p/17805043.html

相关文章

  • 继承&抽象类习题答案
    基础题目第一题:概念辨析什么叫做类与类的继承,作用是什么?就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。作用是子类复用父类内容。继承后,父类与子类之间,各成员有什么样的影响?成员变量:不重名,没有影响。重名,就近使用,使用super区分父类变......
  • 接口和抽象类
    抽象类和接口都是Java中用于实现多态的机制,它们的相同点和不同点如下:相同点:都不能被实例化,只能被继承或者实现。都可以包含抽象方法,子类或者实现类必须实现这些抽象方法。都可以被用于实现多态。不同点:抽象类可以包含非抽象方法,而接口只能包含抽象方法。子类只能继承一......
  • 抽象类(abstract)和接口(interface)的区别
    抽象类(abstract)和接口(interface)的区别抽象类(abstract)只有方法名和参数,没有方法体抽象方法一般存在于抽象类中有抽象方法的一定是抽象类抽象类里不一定有抽象方法抽象类被别的类继承(继承只能单继承),子类一定要重写抽象类中的抽象方法,如果子类也是抽象类则不用重写抽......
  • JavaSE基础05(方法,重载,调用,类和对象,构造器,封装,继承,方法重写,抽象类,接口,异常)
    面向对象以类的方式组织代码,以对象的组织封装数据;一个Java文件只能有一个public类,必须和文件名一样;java文件里也可以没有public类; 方法的定义方法的使用,修饰符返回值类型方法名(参数类型参数名){方法体return返回值};参数类型包括:基本数据类型和引用数据类......
  • Java抽象类与接口的区别(略解)
    抽象类 接口抽象类与接口区别1.抽象类抽象类用abstract来修饰,例如:packagecom.test.abstractaaa;publicabstractclassTestAbstract{}抽象类是用来捕捉子类的通用性的,它不能被实例化,只能用作子类的超类,抽象类是被用来创建继承层级里子类的模板,例如JDK中......
  • 深入理解Java的接口与抽象类
    深入理解Java的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java......
  • 抽象类
    1.抽象类1.1抽象类概念在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类1.2抽象类语法在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修......
  • 抽象类和接口
    1.引言接口和抽象类是面向对象编程中的两个概念,用于实现代码的抽象和封装。2.抽象类2.1定义抽象类(AbstractClass)是用于实现部分行为的类,它不能被实例化。抽象类可以包含普通方法、抽象方法(只有方法签名,没有具体实现)和属性,但抽象类中的抽象方法必须在子类中被实现。抽象类......
  • 【JAVA】关于抽象类的概念
    个人主页:【......
  • C# 接口(interface)与抽象类(abstract)的区别
    【虚方法】virtual关键字用于在基类中修饰方法(或属性、索引器或事件声明),并且允许在派生类中重写这些对象(即override可写可不写)。virtual的使用会有两种情况:情况1:在基类中virtual方法在子类中没用override重写。那么在对子类实例的调用中,该虚方法使用的是基类定义的方法。情况2......