接口抽象类
2016-03-05 21:49
295 查看
1.方法的重写:
在子类继承父类后,子类定义了一个和父类相同的方法(方法名、参数、返回值类型均相同)
父类中的方法:
子类继承父类中的方法并完成重写:
当我们分别对父类和子类创建对像并调用里面的方法时:
可以发现stu对象调用方法执行的是父类中的study方法,stu2对象执行的是子类中重写的方法。
注意:构造函数是不能被继承,所以也不存在构造函数重写。
2.自动转型:
创建子类的对象,然后自动转型为父类的类型。
格式:
我们在主函数中再创建一个自动转型的对象:
可以得出结论:
如果子类重写了父类,则转型后的的对象执行的是重写后的方法;
反之,如果子类没有重写父类,则重写后的对象执行的是父类自己的方法。
3.多态:体现:多个同一种类型的对象,执行同一个方法,执行的过程不一样(原因:自动转型+方法重写 )
4.方法分类:构造方法、普通方法、抽象方法。
命名规则—构造方法:
普通方法:
抽象方法:
5.类的分类:普通类、抽象类、接口
关键字:extends
命名规则—普通类:
1.只能有普通方法和构造方法,一定不能有抽象方法
2.可以创建对象
3.属性可以是常量(static final),也可以是变量
抽象类:
1.三种类型的方法都可以存在
2.不能创建对象
3.属性可以是常量(static final),也可以是变量
接口:
1.只能有抽象方法,普通方法和构造方法不存在
2.不能创建对象
3.属性一定是常量(static final)
抽象类:
普通类继承抽象类:
普通类在继承抽象类时需将抽象类中的抽象方法实例话否则会报错;
同样普通类在继承接口的时候也需要将接口中的方法重写。
在类的继承中,普通类可以继承抽象类和接口,抽象类可以继承接口,但反过来普通类不能被其余两种类继承,同样抽象类不能被接口所继承。
6.接口的继承
接口和抽象类的作用是用来当父类被继承的,抽象方法是用来指导子类重写(实现)的
关键子:implements
格式:
接口无非就是领导,只是指导开发
在子类继承父类后,子类定义了一个和父类相同的方法(方法名、参数、返回值类型均相同)
父类中的方法:
public class Student { public void study (){ System.out.println("学习了"); } }
子类继承父类中的方法并完成重写:
public class UnStudent extends Student { public void study (){ System.out.println("大学生学习了"); } }
当我们分别对父类和子类创建对像并调用里面的方法时:
public static void main(String[] args) { Student stu = new Student(); UnStudent stu2 = new UnStudent(); stu.study(); stu2.study(); }
可以发现stu对象调用方法执行的是父类中的study方法,stu2对象执行的是子类中重写的方法。
注意:构造函数是不能被继承,所以也不存在构造函数重写。
2.自动转型:
创建子类的对象,然后自动转型为父类的类型。
格式:
父类类名 对象名 = new 子类类名();
我们在主函数中再创建一个自动转型的对象:
public static void main(String[] args) { Student stu = new Student(); UnStudent stu2 = new UnStudent(); Student stu3 = new UnStudent(); stu.study(); stu2.study(); stu3.study();}
可以得出结论:
如果子类重写了父类,则转型后的的对象执行的是重写后的方法;
反之,如果子类没有重写父类,则重写后的对象执行的是父类自己的方法。
3.多态:体现:多个同一种类型的对象,执行同一个方法,执行的过程不一样(原因:自动转型+方法重写 )
4.方法分类:构造方法、普通方法、抽象方法。
命名规则—构造方法:
public 类名(){}
普通方法:
public 返回值类型 方法名(参数){}
抽象方法:
public abstract 返回值类型 方法名(参数);
5.类的分类:普通类、抽象类、接口
关键字:extends
命名规则—普通类:
public class 类名{}
1.只能有普通方法和构造方法,一定不能有抽象方法
2.可以创建对象
3.属性可以是常量(static final),也可以是变量
抽象类:
public abstract class 类名{}
1.三种类型的方法都可以存在
2.不能创建对象
3.属性可以是常量(static final),也可以是变量
接口:
public interface 类名(){}
1.只能有抽象方法,普通方法和构造方法不存在
2.不能创建对象
3.属性一定是常量(static final)
抽象类:
public abstract class Student{ public Student(){} public void study(){ System.out.println("学生学习了"); } public abstract void study2(); }
普通类继承抽象类:
public class UnStudent extends Student { public void study2() { System.out.println("大学生学习了"); } }
普通类在继承抽象类时需将抽象类中的抽象方法实例话否则会报错;
同样普通类在继承接口的时候也需要将接口中的方法重写。
在类的继承中,普通类可以继承抽象类和接口,抽象类可以继承接口,但反过来普通类不能被其余两种类继承,同样抽象类不能被接口所继承。
6.接口的继承
接口和抽象类的作用是用来当父类被继承的,抽象方法是用来指导子类重写(实现)的
关键子:implements
格式:
public class 子类类名 implements 接口名{ //重写父类的所有的抽象方法 }
接口无非就是领导,只是指导开发
相关文章推荐
- echarts 折线图动态x轴及数据
- 基于Angularjs实现分页
- Extended Eucild's algorithm
- Hadoop - 更换节点ip 地址之后(虚拟机中的伪分布模式,学习format)
- c++ 继承 多重继承 多态性 虚函数
- RSync 远程同步工具的使用
- 本学期阅读计划+《构建之法》阅读笔记01
- 数组旋转新方法
- Adam学习3之ADAMContext类没有找到
- 大数阶乘!
- Fiddler(一) - Fiddler简介
- Java RMI之HelloWorld篇
- dyld: Library not loaded: @rpath/libswiftCore.dylib 错误的解决
- centos7.0下安装oracle11g
- SQLite 在 Android 的应用
- 做一款有温度的工具产品
- 做一款有温度的工具产品
- 说说ViewHolder的另一种写法
- BestCoder Round #74 (div.2) -LCP Array(有毒的模拟)
- 堆排序