共计 2249 个字符,预计需要花费 6 分钟才能阅读完成。
一.继承
-
概念
继承就是子类继承父类的特色和行为,使得子类从父类继承办法,
使得子类具备父类雷同的行为。 -
类的继承格局
class 父类 {
}
class 子类 extends 父类 {
} -
为什么须要继承
企鹅类:public class Penguin {
private String name;
private int id;
public Penguin(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){System.out.println(name+"正在吃");
}
public void sleep(){System.out.println(name+"正在睡");
}
public void introduction() {System.out.println("大家好!我是" + id + "号" + name + ".");
}
}
老鼠类:public class Mouse {
private String name;
private int id;
public Mouse(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){System.out.println(name+"正在吃");
}
public void sleep(){System.out.println(name+"正在睡");
}
public void introduction() {System.out.println("大家好!我是" + id + "号" + name + ".");
}
}【如果要开发一个类(动物类)中老鼠类和猫类,就须要属性和办法,代码就会存在反复,所以要从根本上解决问题,就须要继承,将两段代码中雷同的局部提取进去组成一个父类:】公共类:public class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){System.out.println(name+"正在吃");
}
public void sleep(){System.out.println(name+"正在睡");
}
public void introduction() {System.out.println("大家好!我是" + id + "号" + name + ".");
}
}【这个 Animal 类就能够作为一个公共类,而后企鹅类和老鼠类继承这个类之后,就有公共类当中的属性和办法,子类就不会存在反复的代码,,代码也更加简洁,继承之后的代码:】企鹅类:public class Penguin extends Animal {public Penguin(String myName, int myid) {super(myName, myid);
}
}
老鼠类:public class Mouse extends Animal {public Mouse(String myName, int myid) {super(myName, myid);
}
}
-
留神
Java 不反对多继承,但反对多重继承。
单继承 public class A{....} public class B extends A{...}
多重继承 public class A{...} public class B extends A{...} public class C extends B{...}
不同类继承同一类 public class A{...} public class B extends A{...} public class C extends A{...}
多继承(不反对)public class A{...} public class B{...} public class C extends A,B{...}
-
重写
如果子类父类中呈现 重名 的成员办法,这时的拜访是一种非凡状况,叫做 办法重写
办法重写 :写与父类雷同的成员办法时,会更新父类,称为重写。 申明不变,从新实现。
class Fu {
public void show() {
System.out.println(“Fu show”);
}
}
class Zi extends Fu {
【子类重写了父类的 show 办法】
public void show() {
System.out.println(“Zi show”);
}
}
public class Demo10{
public static void main(String[] args) {
Zi z = new Zi();
【子类中有 show 办法,只执行重写后的 show 办法】
z.show(); // Zi show
}
} -
super 与 this 关键字
super:对父类的拜访。
this:指向本人的。
class shueiguo {
public void e() {
System.out.println(“ 红 ”); }
}
class pingguo extends shueiguo {
public void e() {
System.out.println(“ 红 ”);
}
public void ee() {
this.eat();【this 调用本类的办法】
super.eat();【super 调用父类的办法】
}
}
public class Demo08 {
public static void main(String[] args) {
shueiguo a = new shueiguo();
a.e();
pingguo c = new pingguo();
c.ee();
}
}
后果:
shueiguo : 红
pingguo : 红
shueiguo : 红