java代码家谱 java家谱管理系统

java中的多态三要素是什么?

1。Person person = new A(); 不是父类对象指向子类引用而是父类引用指向子类对象

创新互联建站是一家专业提供贺州企业网站建设,专注与网站设计制作、做网站H5高端网站建设、小程序制作等业务。10年已为贺州众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

2。这个对象不能调用子类A特有的弹吉他方法--person.guitar(); X

3.如果仅是这么写程序,还不是多态,记住实现多态的三要素:继承 重写 父类引用指向子类对象

那么,你必须在父类里面定义一个方法guitar(); ,然后在子类中重写这个方法

之后,如果你调用persion.guitar(),此时在代码的编译阶段,persion调用的仍然是自己的guitar(),不是儿子的。而当程序运行时,就是java XXX, persion调用的却是儿子的guitar()。这个动态的过程才是多态 。

总之

比如A a = new B();是创建了一个子类对象并把它当成父类对象A用

也就是父类引用指向子类对象

此时,引用变量a有2个类型,编译时的类型为A,运行时的类型为B.在代码编译过程中,a 只能调用属于A的方法. 不能调用B类里面的方法.注意,由于继承关系,如果B重写了A的某个方法,比如说eat(),而在代码编译过程中,a.eat()调用的是A的eat(),但在程序运行时,却运行的是B的eat(). 这就是多态

比如Animal a = new Tiger(); Tiger继承并重写了Animal的eat()方法.这也是父类引用指向子类对象.首先, a 是 一只老虎.但不幸的是,Animal a= new Tiger(); 也就是说a虽然有了老虎的实质, 就是说有了老虎的爪子,身材..... , 但却没有老虎的名分.它虽然身体是老虎, 但名字或者说它的类别却是动物,而不是老虎.而作为动物的定义,你当然不能使用属于老虎的定义的方法.比如说,虽然二者都有吃的行为, 但老虎吃肉,动物都吃肉么? 所以虽然a实质上是老虎,但在书面描述a的行为时,你只能使用动物的定义. 这个阶段就相当于代码的编译的阶段.而此时a的类型为编译时的类型-动物.而如果具体实施吃的行为时, 比如说给a喂吃的, 虽然书面定义了a只能有动物的笼统的吃的方法,比如说用嘴,没有规定要吃肉.但是现在是具体操作了,由于a实质上是老虎,所以a实质上履行的还是老虎的吃的方法. 具体的吃的过程,就相当于程序的运行的阶段. 而此时a的类型为运行时的类型-老虎

运用Java数据结构的知识创建树,内容是族谱。

每一个节点有一个成员变量引用下一个节点就行了。

大致实现了一下单向链表 没有加入异常也没有仔细考虑实现的代码的效率,可以参考下。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

public class LinkListTest {

public static void main(String[] args) {

LinkListString ll=new LinkListString();

ll.add("a");

ll.add("b");

ll.add("c");

ll.add("d");

ll.remove(1);

System.out.println(ll.get(0));

System.out.println(ll.get(1));

System.out.println(ll.get(2));

System.out.println(ll.get(3));

System.out.println(ll.size());

}

}

class LinkListT{

private NodeT frist=null;

private NodeT last=null;

private int size=0;

public void add(T t){

if(frist==null){

NodeT node=new NodeT();

node.setT(t);

size++;

frist=node;

last=node;

}else{        

NodeT node=new NodeT();       

node.setT(t);

last.setNextNode(node);

size++;

last=node;

}

}

public T get(int i){      

if(i=0isize){

NodeT nod=null;

for(int n=0;n=i;n++){

if(n==0)

nod=frist;

else

nod=nod.getNextNode();             

if(i==n){

return nod.getT();

}         

}         

}

return null;

public void remove(int i){

if(i=0isize){

if(size2){

frist=null;

last=null;

size=0;

}else{

size--;

if(i==0){

frist=frist.getNextNode();        

}else{      

NodeT nod1=null;

NodeT nod2=null;

for(int n=0;n=i;n++){

if(n==0){

nod1=frist;

nod2=frist;

}else{

nod2=nod1;

nod1=nod1.getNextNode();                      

if(i==n){

if(nod1!=null)

nod2.setNextNode(nod1.getNextNode());

else{

nod2.setNextNode(null);

last=nod2;

}

}             

}   

}

}

}

public int size(){

return size;

}

}

class Node T{

public T getT() {

return t;

}

public void setT(T t) {

this.t = t;

}

public NodeT getNextNode() {

return nextNode;

}

public void setNextNode(NodeT nextNode) {

this.nextNode = nextNode;

}

private T t;

private NodeT nextNode=null;

}

一个简单的Java程序代码?

package com.zpp;public class Charge {

public static void main(String [] args) {

if(args.length ==0) {

System.out.println("parameter error!");

System.out.println("java com.zpp.Charge [int]");

return;

}

int min = Integer.parseInt(args[0]);

double money = 0.0;

if (min = 0) {

money =0.0;

System.out.println("not money");

} else if (min = 60) {

money = 2.0;

} else {

money = 2.0 + (min - 60) * 0.01;

}

System.out.println("please pay: " + money);

}

} 编译:javac -d . Charge.java运行:java com.zpp.Charge 111

java二叉树家谱实现

mport java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTree;

import javax.swing.tree.DefaultMutableTreeNode;

public class Randomtree extends JFrame {

private JTree tree;

public static String[] school = { "初中课程", "高中课程", "大学课程" };

public static String[] color = { "颜色", "运动", "食物" };

public static String[] plant = { "植物", "动物", "人" };

public static String[][] school2= {

{ "初中一年级", "初中二年级", "初中三年级"}, {"高中一年级", "高中二年级",

"高中三年级"}, {"大学一年级", "大学二年级", "大学三年级", "大学四年级"} };

public static String[][] color2 = {

{ "绿色", "白色", "红色"}, {"足球", "篮球",

"羽毛球"}, {"面包", "牛奶", "披萨", "热狗"} };

public static String[][] plant2 = {

{ "玫瑰花", "月季花", "海棠花"}, {"猪", "狗",

"猫"}, {"黄种人", "黑种人", "白种人", } };

public static void main(String[] args) {

// TODO 自动生成方法存根

new Randomtree();

}

public Randomtree() {

super();

final Random random=new Random();

setVisible(true);

setSize(300,400);

tree = new JTree();

final JPanel panel = new JPanel();

panel.setPreferredSize(new Dimension(0, 40));

getContentPane().add(panel, BorderLayout.NORTH);

final JScrollPane scrollPane = new JScrollPane();

scrollPane.setPreferredSize(new Dimension(300, 350));

getContentPane().add(scrollPane, BorderLayout.CENTER);

final JButton button = new JButton();

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int k=random.nextInt(3);

tree=getTree(k);

scrollPane.setViewportView(tree);

}

});

scrollPane.setViewportView(null);

button.setText("随机生成树");

panel.add(button);

pack();

}

protected JTree getTree(int n) {

String[] second=null;

String[][] three=null;

if(n==0){second=school; three=school2;}

if(n==1){second=color; three=color2;}

if(n==2){second=plant; three=plant2;}

DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");

for(int i=0;isecond.length;i++){

DefaultMutableTreeNode secondNode=new DefaultMutableTreeNode(second[i]);

for (int j=0;jthree[i].length;j++){

DefaultMutableTreeNode threetNode=new DefaultMutableTreeNode(three[i][j]);

secondNode.add(threetNode);

}

root.add(secondNode);

}

JTree tree=new JTree(root);

tree.expandRow(1);

tree.expandRow(5);

tree.expandRow(9);

return tree;

}

}

简单的 例子你可以模仿一下


网站栏目:java代码家谱 java家谱管理系统
文章出自:http://pwwzsj.com/article/dooecic.html