网站风格: 红 | 蓝
搜索:  全站?
首页 |  Java开发 |  DOTNET开发 |  PHP开发 |  ASP技术 |  Web开发 |  数据库应用 |  网络文摘 |  作品集 |  下载 |  留言
文章聚合
  J2EE  |   框架技术  |   Javascript  |   AJAX  |   J2ee Server  |   J2ME  |
  WinForm开发  |   Asp.net  |   C#语言  |   服务器  |   第三方控件  |
  PHP笔记  |   Linux  |   第三方代码  |
  ASP教程  |   ASP实用代码  |   ASP笔记  |   服务器  |
  CSS样式表  |   Photoshop设计  |   Flash  |   HTML 小技巧  |   Dreamweaver  |   XML技术  |
  SQL Server  |   Oracle  |   MySQL  |
  散文  |   幽默  |   杂文  |
  Web 项目  |   杂七杂八  |
  第三方代码  |   实用工具  |   作品下载  |   帮助文档  |
奇点网 - Java开发 - J2EE - 关于继承与多态
关于继承与多态
来源:http://www.7dit.com     作者:7dit     发布日期:2008-09-19 00:00:01   点击量:502
/********************父类的父类**************************/
public class
ParentofParent{
int parenta;
ParentofParent(int
a){
this.parenta=a;
}
public void
printpp(){
System.out.println("我是父类的父类");
}
}

/********************父类**************************/
public
class Parent extends ParentofParent{
public int a;
Parent(int
a){
super(a);
this.a=a;
}
public void
test(){
System.out.println("属性a的值为:"+a);
}
public void
printp(){
System.out.println("我是父类");
}
}


/********************接口一**************************/

public
interface MyInterface1 {
public void show1();
//接口中仅能声明方法原形。不能有属性以及方法的具体内容。这点和抽像类有本质的区别。
//相同点则是接口的方法和抽像类中的抽像方法都需要子类重写。
}


/********************接口二**************************/

public
interface MyInterface2 {
public void
show2();
}

/********************关于final类**************************/

public
final class FinalClass
// final类不能再被子类继承
{
public final int
i=5;
}

/********************关于抽象类**************************/


public
abstract class AbstractChild {
int abs_a=1; //抽象类也能有属性,当被承时能传递给子类。
public
abstract void abs();
//抽象方法一样不能有具体内容,并且只能存在于抽象类中,并且必需在子类中重写
//而在非抽象类中则必需有方法主体,如果是空方法也要用{}标注出方法体。
public
void
print(){
System.out.println("抽象类也可以有具体的方法");
}
}


/********************子类的继承**************************/

public
class Child extends Parent implements MyInterface1,MyInterface2{
Child(int
a){
super(a);
//1.父类中构造函数为有参构造,则子类一定要为父类进行构造。用super()调用父类的构造函数。
}
public void
test(){
System.out.println("子类中a值为:"+a);
//子类对父类方法进行重写,其形态参数必需一致,否则则是方法的重载或者新方法。
super.test();
//在子类中调用父类的方法只能在子类方法中调用,不能直接调用。
}
public void
print(){
System.out.println("我是子类");
}
public void
show1(){
System.out.println("接口1的方法实现");
}
public void
show2(){
System.out.println("接口2的方法实现");
}

}


/********************关于静态类**************************/


public
class StaticTest {
public static int i=2;
public static void
print(){
System.out.println("静态方法无需实例对象");
}
public int
j=3;
}


/********************测试类**************************/


class
Test {
public static void main(String[] args) {
Child mytest=new
Child(1);
mytest.printpp();
//类不能同时继承两个类。但是可以多层继承。
mytest.printp();
mytest.print();
mytest.show1();
mytest.show2();

ParentofParent
mytest1 = new Child(1);
//用父类进行声明时,子类中实现的接口是无法调用的。
StaticTest.print();
//静态方法无需实例对象即可调用
StaticTest.i=3; //静态属性同样无需实例对象.
StaticTest newTest=new
StaticTest();
System.out.println(newTest.i);//对象中的静态属性与类中的属性指向同一内存地址,都位于静态区中。
FinalClass
finalobj=new
FinalClass();
System.out.println(finalobj.i+"这是一个final属性,也可以看作常量,是无法再进行更新的");
}
}
标签:   Java  |
留言 | 链接 | 标签 | 风格: 红 蓝   
Copyright © 2005 奇点中文网--7dit.com
闽ICP备05001292号