Java基础之面向对象详细讲解(4)——三大特性之继承
程序员文章站
2022-07-10 17:29:05
1.继承1.1、继承子类继承父类的属性和行为亚古兽就是战斗暴龙兽的父类,越往后辈分越低,但是更加具体两张图来帮助理解通过extends继承父元素允许继承的属性和行为子类是对父类的扩展1.2、代码助理解main.javapackage com;public class main { public static void main(String[] args) { son my = new son(); my.car(); my....
1.继承
1.1、继承
子类继承父类的属性和行为
亚古兽就是战斗暴龙兽的父类,越往后辈分越低,但是更加具体
两张图来帮助理解
通过extends继承父元素允许继承的属性和行为
子类是对父类的扩展
1.2、代码助理解
main.java
package com;
public class main {
public static void main(String[] args) {
son my = new son();
my.car();
my.grade=10;
}
}
parent.java
package com;
public class parent {
int money;
int house;
private String achievement;
public void car(){
System.out.println("一辆车");
}
}
son.java
package com;
public class son extends parent {
int grade;
}
2.1、super关键字
在继承后有super这个关键字
作用:区分父类和子类重复的变量名
super代表父类的
this代表子类的
2.2、代码助理解
equ_triangle.java
package com;
public class equ_triangle extends triangle {
//我在父类中有name变量,但是因为我子类中也有name,
// 在通过this.name指向时,会优先指向子类中的name
//所以在此时,通过使用super和this进行区分
//super.name指向的是父元素的name
//this.name指向的是子元素的name
String name = "等边三角形";
/*
* 在执行构造方法的时候会先执行父类的构造方法,然后再执行子类的构造方法
* 在继承的形式中执行顺序是:
* 父类构造--子类构造
* */
public equ_triangle(){
/*在执行子类构造时相当于执行了
super()
在无参数时可以不用写,在有参数时必须写,且Java要求必须写在子类构造方法的第一行
*/
System.out.println("子类构造方法");
}
public void test(){
this.name="等边三角形";
System.out.println("将三角形修改为:");
/*子类元素*/
System.out.println(this.name);
System.out.println("父元素是:");
/*夫雷元素*/
System.out.println(super.name);
}
public void test2(){
System.out.println("将三角形修改为:");
System.out.println(this.name);
System.out.println("父元素是:");
System.out.println(super.name);
}
public static void main(String[] args) {
equ_triangle triangle = new equ_triangle();
System.out.println("*********test方法开始执行*********");
triangle.test();
System.out.println("*********test2方法开始执行*********");
triangle.test2();
}
}
triangle.java
package com;
public class triangle {
String name="三角形";
public triangle(){
System.out.println("父类构造方法");
}
}
2.重写
2.1、重写的使用
为什么?
当子类与父类出现相同的方法名是,就需要重写来把父类的方法覆盖掉
2.2、代码助理解
main.java
package com;
public class main extends first{
//如果不写下面方法,听父元素的,那老婆就是翠花
//如果想要自己决定,那么重新写(重写)这个方法覆盖掉父类相同的这个方法
public void girlfriend(){
System.out.println("老婆是林志玲");
}
public static void main(String[] args) {
main me = new main();
me.girlfriend();
}
}
first.java
package com;
public class first {
public void girlfriend(){
System.out.println("老婆是翠花");
}
}
本文地址:https://blog.csdn.net/getture/article/details/110821505