java继承、多态基础
2016-01-04 15:34
423 查看
面向对象编程的主要特点有四个:继承、多态、抽象、封装;
封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口
继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
多态:多态性是指允许不同类的对象对同一消息作出响应
抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节
public class test {
class A{
public String show(D obj){
return ("A and D");
}
public String show(A obj){
return ("A and A");
}
public String printString(){
return "A";
}
}
class B extends A{
public String show(B obj){
return ("B and B");
}
public String show(A obj){
return ("B and A");
}
public String printString(){
return "AB";
}
}
class C extends B{}
class D extends B{}
class E extends A{
public String show(B obj){
return ("E and B");
}
public String show(A obj){
return ("E and A");
}
public String printString(){
return "AE";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//多态(A、B、E不同对象调用了A的同一个方法,执行结果不同)
A a1 = new test().new A();
A a2 = new test().new B();
A a3 = new test().new E();
System.out.println(a1.printString());
System.out.println(a2.printString());
System.out.println(a3.printString());
//继承(输出结果是:A and A
A and A
A and D
B and A
B and A
A and D
B and B
B and B
A and D)
// A a1 = new test().new A();
// A a2 = new test().new B();
// B b = new test().new B();
// C c = new test().new C();
// D d = new test().new D();
// System.out.println(a1.show(b));
// System.out.println(a1.show(c));
// System.out.println(a1.show(d));
// System.out.println(a2.show(b));
// System.out.println(a2.show(c));
// System.out.println(a2.show(d));
// System.out.println(b.show(b));
// System.out.println(b.show(c));
// System.out.println(b.show(d));
}
}
封装:封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口
继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
多态:多态性是指允许不同类的对象对同一消息作出响应
抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节
public class test {
class A{
public String show(D obj){
return ("A and D");
}
public String show(A obj){
return ("A and A");
}
public String printString(){
return "A";
}
}
class B extends A{
public String show(B obj){
return ("B and B");
}
public String show(A obj){
return ("B and A");
}
public String printString(){
return "AB";
}
}
class C extends B{}
class D extends B{}
class E extends A{
public String show(B obj){
return ("E and B");
}
public String show(A obj){
return ("E and A");
}
public String printString(){
return "AE";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//多态(A、B、E不同对象调用了A的同一个方法,执行结果不同)
A a1 = new test().new A();
A a2 = new test().new B();
A a3 = new test().new E();
System.out.println(a1.printString());
System.out.println(a2.printString());
System.out.println(a3.printString());
//继承(输出结果是:A and A
A and A
A and D
B and A
B and A
A and D
B and B
B and B
A and D)
// A a1 = new test().new A();
// A a2 = new test().new B();
// B b = new test().new B();
// C c = new test().new C();
// D d = new test().new D();
// System.out.println(a1.show(b));
// System.out.println(a1.show(c));
// System.out.println(a1.show(d));
// System.out.println(a2.show(b));
// System.out.println(a2.show(c));
// System.out.println(a2.show(d));
// System.out.println(b.show(b));
// System.out.println(b.show(c));
// System.out.println(b.show(d));
}
}
相关文章推荐
- java开发中文件读取的方法总结
- [转载]spring security 的 logout 功能
- Java中的静态单多分派与动态单分派
- Spring事务配置的五种方式
- JAVA获取CPU 硬盘 及主板序列号
- 最全面的Java多线程用法解析
- Java构建工具:Ant vs Maven vs Gradle
- 【第三章】 DI 之 3.2 循环依赖 ——跟我学spring3
- Java并发编程:Thread类的使用
- 安卓防止反编译,混淆eclipse 的项目代码步骤
- 记录-spring MultipartFile 文件上传
- java后台正则验证
- myeclipse配置编码格式为utf-8
- java星座、年龄、日期等
- Spring中继承配置的注入方法
- 【第三章】 DI 之 3.1 DI的配置使用 ——跟我学spring3
- 根据数据库表结构生成java类
- spring mvc 官方下载
- 不使用spring的aop功能实现日志输出
- Java设计模式_结构型_适配器模式_丑小鸭与白天鹅