首页 > 编程语言 > Java基础知识点(抽象类)

Java基础知识点(抽象类)

时间:2023-04-06 22:05:20浏览次数:37  
标签:知识点 Java name age void 抽象类 public String

封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为。

一:抽象方法和抽象类的定义

将共性的行为(方法)抽取到父类之后,由于每一个子类执行的内容是不一样,所以,在父类中不能确定的具体的方法体,该方法就可以定义为抽象方法。

抽象类:如果一个类中存在抽象方法,那么该类就必须声明抽象类。

二:抽象类和抽象方法的定义格式

1.抽象方法的定义格式:

public abstract 返回值类型 方法名(参数列表);

2.抽象类的定义格式:

public abstract class 类名{

}

三:抽象类和抽象方法的注意事项

1.抽象类不能实例化

2.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。

3.可以有构造方法

四:抽象类的子类

要么重写抽象类中的所有抽象方法,要么是抽象类

下面给出一个实例:

package com.itheima.a01abstractdemo1;

public abstract class Person {
      private String name;
      private int age;


      public Person(){

      }
      public Person(String name ,int age){
              this.name = name;
              this.age = age;


      }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public abstract void work();



      public void sleep(){
          System.out.println("睡觉");
      }


}
package com.itheima.a01abstractdemo1;

public class Student extends Person {


    public Student(){

    }
    public Student(String name ,int age){
        super(name,age);
    }




    @Override
    public void work(){
         System.out.println("学生的工作是学习");
     }


}
package com.itheima.a01abstractdemo1;

public class Test {
         public static void main(String[] args) {
             //创建对象
             //Person p = new Person();
             //说明抽象类不能实例化

             Student s = new Student("张三", 23);

             System.out.println(s.getName() + ", " +s.getAge());


         }


}



                   Java基础知识点(抽象类)_System

标签:知识点,Java,name,age,void,抽象类,public,String
From: https://blog.51cto.com/u_15912723/6174215

相关文章

  • Java character类
    character类转义序列:转义序列描述\ttab,在文中插入一个tab键\bback,在文中插入一个后退键\nnext,在文中插入一个换行\renter,在文中插入一个回车键\f在文中插入换页符\'在文中插入单引号\''在文中插入双引号\\在文中插入反斜杠  ......
  • java.nio.charset.MalformedInputException: Input length = 1
    将nacos作为配置中心时,发现加载nacos内容时报错:java.nio.charset.MalformedInputException:Inputlength=1后来发现,将项目统一为utf-8后,正常启动。 ......
  • Java多线程之共享资源和同步
    一、竞争条件所谓竞争条件,即两个或更多的任务竞争响应某个条件,因此产生冲突或不一致结果的情况。IntGenerator.java生成一个整数:publicabstractclassIntGenerator{privatevolatilebooleancanceled=false;(1)publicabstractintnext();(2)public......
  • 学习Java Day1
    尝试用Effie记录一下学习的java过程。2023.4.6-一些电脑的快捷键 -win+E打开我的电脑 -shift+delete永久删除文件-一些打开cmd的方法 -win+R(最常用)输入cmd -桌面其他位置+鼠标右键打开powershell -win找到windows系统打开命令提示符-一些cmd中的指令 -盘符切换......
  • Java-Day-5(数组 + 排序 + 查找 + 二维数组)
    Java-Day-5数组可以存放多个同一类型的数据,属于引用类型动态初始化语法:数据类型数组名[]=new数据类型[大小]例:int[]a=newint[5]或:doublea[]=newdouble[n]使用(引用/访问/获取)时,初始下标(索引)是从0开始,第一个数=a[0]获取长度:数组名.length......
  • # Java笔记(12) 静态代理
    静态代理可以在不改变原有代码的情况下,增加新的功能和操作,对原有对象进行扩展。静态代理要求真实对象和代理对象都实现同一个接口,由代理对象代理真实角色的接口实现,并在实现前后增加新的操作。publicclassStaticProxy{publicstaticvoidmain(String[]args){Person......
  • JavaWeb-Cookie-16课-2023-04-06
    packagecom.feijian.servlet;importjavax.servlet.ServletException;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOExc......
  • java -- System类和冒泡排序
    Systemjava.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。System类私有修饰构造方法,不能创建对象,直接类名调用。exit//终止当前运行的Java虚拟机,非零表示异常终止publicstaticvoidexit(intstatus)currentTimeMillis//返回当前时间(......
  • java调用本机的命令 如ping、打开文本等
    最近接触到用java代码调用主机的命令部分感觉有点意思整理总结一下环境jdk1.8 操作系统win10,不用引入其他的包jdk自带的api就可以一、java调用ping命令importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.nio.charset.Charset;//调用本机ping......
  • Java笔记(11) 多线程
    Java原生支持多线程,主要通过以下四种方式实现多线程:继承Thread类实现Runnable接口实现Callable接口线程池继承Thread类通过创建Thread类的子类,并重写run()方法,通过调用start()方法启动线程。publicclassTestThreadextendsThread{@Overridepublicvoidru......