【Java笔记】Java抽象类与继承的部分理解
来源:互联网 发布:java打印功能 编辑:程序博客网 时间:2024/06/04 17:30
抽象这个词,顾名思义,从众多的事物中抽出像的部分,也就是说这个类是作为一个父类的总体的存在,是集合来了子类和把他作为接口的类的抽象部分;
在Java语法中,抽象类内部必须含有至少一个抽象方法,则类名前的abstract修饰词才不会报错;
抽象类中可以有具体实现的方法,但一定会存在需要子类实现的方法;
对于子类,必须实现其继承的父类的全部抽象方法,否则编译出错;
1、关于继承中的构造方法
子类继承的时候,会继承父类中有访问权限的(比如public修饰的)成员变量和成员方法,还有构造方法,对于父类构造方法,可以调用父类的构造方法,但子类不能重载父类的构造方法,由于在java中类的构造方法与类的名称相同,不可能子类和父类使用相同的类名称,因此子类也就不能重载父类的构造方法,但子类可以通过super来调用父类的构造方法。
关于子类中对父类构造方法的调用,如果父类的构造方法无参数,则子类中的构造方法必须是无参的,否则报错;
同样,如果父类的构造方法是有参的,则在子类中必须调用父类的有参构造方法;
此时注意,如果在子类中不调用父类的构造方法,则默认调用父类的无参构造方法,如果父类中也没写构造方法,则系统会默认生成一个,如下面写的代码:
例子01
public static void main(String arg[]){
}
//这是一个根据车轮计算速度
private double turnRate;
//把返回车轮的半径的方法定义成抽象方法,这个抽象方法会在子类中实现
public abstract double getRadius();
public void setTurnRate(int turnRate) {
// TODO Auto-generated method stub
this.turnRate=turnRate;
}
//速度等于 车轮半径*2*PI*转速
public double getSpeed(){
return 3.14*2*getRadius()*turnRate;
}
}
//override
return 0.28;
}
public static void main(String args[]){
zilei csm=new zilei();//创建自身的对象后就可以调用父类的成员方法
csm.setTurnRate(15);
System.out.println(csm.getSpeed());
}
public zilei(){
super();
}
public double getRadius(){
return 0.28;
}
public static void main(String args[]){
zilei csm=new zilei();
csm.setTurnRate(15);
System.out.println(csm.getSpeed());
}
}
public class Employee {
private String name;
private int salary;
public Employee(String name,int salary){
this.name=name;
this.salary=salary;
}
public String getDetails(){
return "name:"+name+"\nSalary"+salary;
}
}
//子类经理也属于员工,所以继承父类
public class Manager extends Employee{
private int bonus;//经理的特殊之处在于经理有奖金
public Manager(String name,int salary,int bonus){
super(name,salary);
this.bonus=bonus;
}
public String getDetails(){
return super.getDetails()+"\nbonus:"+bonus;
}
}
//测试dome
public class TestDome {
public static void main(String []args){
Employee ma= new Manager("LIU",10000,2000);
System.out.println(ma.getDetails());
}
}
//输出结果:
- 【Java笔记】Java抽象类与继承的部分理解
- java抽象类继承理解
- Java学习笔记:类的继承与抽象(抽象类存疑)
- Java继承与抽象类
- 对java继承,多态,抽象类,接口的理解
- 对于java封装、继承、抽象类和接口的理解
- java继承,抽象类个人理解
- java抽象类的继承
- java中类的继承与抽象类简明教程
- java中类的继承与抽象类简明教程
- Java基础10 接口的继承与抽象类
- Java基础10 接口的继承与抽象类
- Java基础10 接口的继承与抽象类
- Java基础10 接口的继承与抽象类
- Java基础——接口的继承与抽象类
- Java基础10 接口的继承与抽象类
- JAVA接口与抽象类的区别(部分转载)
- java面向对象 继承与抽象类
- 简易神经网络代码测试
- VS 2017 众多重构插件
- 【Python 学习笔记】各种生成器
- 系统服务控制
- 数组排序后剔除重复元素
- 【Java笔记】Java抽象类与继承的部分理解
- 笔试题 | 数据挖掘岗位 | 数据结构、数据处理
- Python2.7+pytesser简单验证码的识别
- 深入理解Java的接口和抽象类
- F
- 图片轮播演示
- ConcurrentHashMap资料集
- Jenkins自动构建的方法
- Android Https相关完全解析 当OkHttp遇到Https