0%

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
public class ex1 {
public static void main(String[] args) {
Dog dog =new Dog("大黄",13,"公");
System.out.println(dog.eat());
dog.prinfo();
Dog dog2 =new Dog("小粉",20,"直升机","草");
System.out.println(dog2.eat());
dog2.prinfo();
}
}
class animal{
private String name;
private int age;
private String sex;
public animal(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public void prinfo(){
System.out.println(getName()+"今年"+getAge()+"岁了,是个"+getSex()+"宠物");
return;
}
private void info(){
System.out.println(getName()+"今年"+getAge()+"岁了,是个"+getSex()+"宠物");
return;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}

public int getAge() {
return age;
}

public String getName() {
return name;
}

public String getSex() {
return sex;
}
}
class Dog extends animal{
private String food="骨头";
public Dog(String name, int age, String sex, String food) {
super(name, age, sex);
this.food = food;
}
public Dog(String name, int age, String sex) {
super(name, age, sex);
//这里就使用了多态,通过参数的不同,调用同一个函数名但有不同的效果
}
public String eat(){
return food;
}
}
}

这里面的狗就继承了动物的属性,不需要再额外写一遍名字年龄性别的属性。此外,对于父类的函数,根据访问修辞符而定。但在这里,仅仅是同包不同类的Dog是没办法使用函数info的,只能使用prinfo函数。
2024/9/20 15:22:31
增加细节:之前一直用IDE自动填充,没有注意到的部分在这里重申一下以加强记忆。

  1. 一个类的构造器名字要和类名一致。且构造器是没有类型的,为【访问修辞符】 【构造器名】的格式组成。值得注意的是,虽然目前没有用上,但访问修辞符也是可以为private的
  2. 当我们继承父类时,子类没有显式调用父类构造器的画,编译器会为隐式调用父类的无参构造器,而如果父类没有这个无参构造器,那就必须用super关键词显式进行调用。
  3. 构造器可以有多个。
  4. 关于向下继承,只能是父类强制转化成子类,同一个父类的两个子类之间不能强制转化。
-------------本文结束感谢您的阅读-------------

总访问量
总访客数