• 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 }

    运行输出:

    职业是:学生

    职业是:老师

  • 相关阅读:
    android源码在线查看
    关于codereview工具与建议
    <转>如何进行code review
    [转] Android实时抓包分析 : 善用adb调试桥
    Swift:UIKit中Demo(一)
    Objective-C学习笔记(十)——循环语句for和do-while的使用
    一些牛人的IOS博客,mark下慢慢学习
    Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力)
    Web前端之基础知识
    通过金矿模型介绍动态规划
  • 原文地址:https://www.cnblogs.com/eaglezb/p/5961449.html
Copyright © 2020-2023  润新知