Java杂谈之抽象类和抽象方法
来源:互联网 发布:真实的朝鲜 知乎 编辑:程序博客网 时间:2024/06/05 03:44
一直以来,不是很了解abstract关键字的作用,最近才对其有了一些初步的认识和了解。
abstract--抽象,既可以修饰类,也可以修饰方法
以下是一些基本的认识和注意点:
1.抽象方法只有方法的声明
2.抽象方法是让子类必须实现的方法
3.抽象方法不能私有
4.抽象方法只能在抽象类中定义
5.抽象类不可以实例化对象,所以抽象类存在的意义是做父类
6.抽象类里面是可以没有抽象方法的
7.抽象类是可以有构造函数的
以下是具体的实例:
Person--父类
Student--子类
Test--测试
Person类:
package JavaAbstract;//抽象方法只有方法的声明//抽象方法是让子类必须实现的方法//抽象类不可以有对象,不可以实例化,所以抽象类存在的意义是做父类//抽象类里面是可以没有抽象方法的public abstract class Person {private String name;//抽象类是可以有构造函数的//public Person(){}public Person(String name){this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}//抽象方法不能私有//抽象方法只能在抽象类中定义public abstract String getDescription();protected abstract String getDescription(int i);}
Student类:
package JavaAbstract;public class Student extends Person {private String major;public Student(String name,String major) {super(name);this.major = major;}@Overridepublic String getDescription() {return this.getName()+"学生的专业是"+this.major;}@Overrideprotected String getDescription(int i) {// TODO Auto-generated method stubreturn null;}}class Employee extends Person{private double salary;public Employee(String name,double salary) {super(name);this.salary = salary;}@Overridepublic String getDescription() {return this.getName()+"员工的工资是" + this.salary;}@Overrideprotected String getDescription(int i) {// TODO Auto-generated method stubreturn null;}}
Test类:
package JavaAbstract;public class Test {public static void main(String[] args) {//Person p = new Person();错误,抽象类不能实例化对象Person[] p = new Person[2];p[0] = new Employee("张三",1000);p[1] = new Student("李四","软件工程");for(int i=0;i<2;i++){String d = p[i].getDescription();System.out.println(d);}}}
实验截图:
0 0
- Java杂谈之抽象类和抽象方法
- C#之抽象类和抽象方法
- java抽象类和抽象方法
- java抽象类和抽象方法
- java抽象类和抽象方法
- Java抽象类和抽象方法
- java中的抽象类和抽象方法
- java的抽象类和抽象方法
- java抽象类和抽象方法
- 53 Java 抽象类和抽象方法
- Java的抽象类和抽象方法
- java中的抽象类和抽象方法
- Java 抽象类,抽象方法和接口
- java抽象类和抽象方法
- java中的抽象类和抽象方法
- Java抽象类和抽象方法概述
- java中的抽象类和抽象方法
- java中的抽象类和抽象方法
- [POJ 1236][IOI 1996]Network of Schools
- SPOJ 3410 Feynman
- 动态修改table的thead
- iOS中Instrument的使用
- ZOJ-2587-Unique Attack
- Java杂谈之抽象类和抽象方法
- adb shell删除系统apk重新安装包
- js 获取当前日期
- UITextField 详情
- ie6中window.location.href不能跳转解决
- 设置属性 放于属性窗口中
- 【JAVA/swing】eclipse的jigloo插件可视化开发java swing/SWT.安装及使用演示。
- Lesson: Interfaces
- Android sdk Manager 无法下载的解决方法