• Java面向对象-抽象类


    Java面向对象-抽象类

    定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象;

    注意点

    1,包含一个抽象方法的类是抽象类;

    2,抽象类和抽象方法都要用abstract关键字修饰;

    3,抽象方法只需要声明而不需要实现;

    4,抽象类必须被子类继承,(假如不是抽象类)必须重写抽象父类中的全部抽象方法;

    5,抽象类不能被实例化;

    我们先来定义一个抽象类:

     1 package com.java1234.chap03.sec11;
     2  
     3 /**
     4  * 定义一个抽象类People
     5  * @author user
     6  *
     7  */
     8 public abstract class People {
     9  
    10     private String name;
    11  
    12     public String getName() {
    13         return name;
    14     }
    15  
    16     public void setName(String name) {
    17         this.name = name;
    18     }
    19      
    20     public void say(){
    21         System.out.println("我的姓名是:"+this.getName());
    22     }
    23      
    24     /**
    25      * 定义一个抽象方法 职业 让子类去具体实现
    26      */
    27     public abstract void profession();
    28      
    29 }

    抽象类,定义一个属性name 以及方法say() 再定义一个抽象方法 profession 具体实现让子类去实现;

    我们搞一个测试类:

    我么尝试下实例化下People类:

    QQ鎴�浘20161008194222.jpg

    我们会看到 编译出错,不能实例化People类;

    我们定义一个Student类,以及一个Teacher类:

     1 package com.java1234.chap03.sec11;
     2  
     3 public class Student extends People{
     4  
     5     @Override
     6     public void profession() {
     7         System.out.println("职业是:学生");
     8     }
     9  
    10 }
     1 package com.java1234.chap03.sec11;
     2  
     3 public class Teacher extends People{
     4  
     5     @Override
     6     public void profession() {
     7         System.out.println("职业是:老师");
     8     }
     9  
    10 }

    我们搞一个测试类:

     1 package com.java1234.chap03.sec11;
     2  
     3 public class Test {
     4  
     5     public static void main(String[] args) {
     6          
     7         Student student=new Student();
     8         student.profession();
     9          
    10         Teacher teacher=new Teacher();
    11         teacher.profession();
    12          
    13     }
    14 }

    运行输出:

    职业是:学生

    职业是:老师

  • 相关阅读:
    IE10/IE9 Click Enter will trigger submission
    错误代码以及错误消息提示-如何更好地管理与维护消息资源
    Redmine2.6.1 升级与Agile插件安装
    编译安装的 mysql apache 用 service mysqld start 来启动
    编译安装php 5.5 缺少依赖包 及解决方案
    linux 下mysql的启动 、调试、排错
    linux 的 磁盘操作
    mysql 触发器的创建 修改 删除
    创建mysql存储过程,调用 及删除
    存储函数的创建 删除 修改
  • 原文地址:https://www.cnblogs.com/eaglezb/p/5961449.html
Copyright © 2020-2023  润新知