zoukankan      html  css  js  c++  java
  • Java从入门到实战之(14)面向对象之抽象类(二)

    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 }
    复制代码

    运行输出:

    职业是:学生

    职业是:老师

  • 相关阅读:
    Java多线程学习---------超详细总结(java 多线程 同步 数据传递 )
    类的高级特性——抽象类
    多态
    继承、继承中的重写
    接口interface、实现接口implements
    “==”运算符与equals()
    静态成员
    对象
    属性和行为(成员变量和成员方法)
    字符串生成器
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13807664.html
Copyright © 2011-2022 走看看