Java oop代码6(原创方法):5道用上extends继承,子类,父类的题

//1、父类:交通工具:run方法
子类:公交车(Bus),自行车(Bike),飞机(Plane),地铁 (Metro)
package a;
public class Student {
public static void main(String[] args) {
feiji f=new feiji("飞机");
f.run();
f.fly();
ditie d=new ditie("地铁");
d.run();
d.zr();
feiji s=new feiji("公交车");
s.run();
s.zr();
feiji z=new feiji("自行车");
z.run();
z.znpy();
}
}
class jiaotonggongjv{
public String name;
public jiaotonggongjv(String name){
this.name=name;
}//红色部分是我认为重要或需记忆或不熟或可能会忘的部分
public void run(){
System.out.println("执行了"+this.name+"的run方法");
}
public void zr(){
System.out.println("执行了"+this.name+"的载人方法");
}
public void fly(){
System.out.println("执行了"+this.name+"的飞方法");
}
public void znpy(){
System.out.println("执行了"+this.name+"的载女朋友方法");
}
}
class gongjiaoche extends jiaotonggongjv{
public gongjiaoche(String name) {
super(name);
}
}
class zixingche extends jiaotonggongjv{
public zixingche(String name) {
super(name);
}
}
class feiji extends jiaotonggongjv{
/*因为class feiji 继承了class jiaotonggongjv,所以class jiaotonggongjv里面的
public String name;
public jiaotonggongjv(String name){
this.name=name;
的代码作用,class feiji也有了,所以前面可写出feiji f=new feiji("飞机");,也可写成
jiaotonggongjv f=new jiaotonggongjv("飞机");让前面System.out.println("执行了"+this.name+"的飞方法");中的this.name可以打印出"飞机"
*/
public feiji(String name) {
super(name);//这里就有可少写些name代码的作用了,"飞机"会赋值到name与this.name中
}
}
class ditie extends jiaotonggongjv{
public ditie(String name) {
super(name);
}
}
执行效果图:

//2、父类:人:walk方法
//子类:老师,学生,蓝领,白领
package a;
public class Student {
public static void main(String[] args) {
person f=new person("老师");
f.walk();
f.say();
person d=new person("学生");
d.walk();
d.play();
person e=new person("蓝领");
e.walk();
e.gzzd();
person s=new person("白领");
s.walk();
s.gzg();
}
}
class person{
public String name;
public person(String name){
this.name=name;
}
public void walk(){
System.out.println("执行了"+this.name+"的walk方法");
}
public void say(){
System.out.println("会说");
}
public void play(){
System.out.println("会玩");
}
public void gzzd(){
System.out.println("工资中等");
}
public void gzg(){
System.out.println("工资高");
}
}
class gongjiaoche extends person{
public gongjiaoche(String name) {
super(name);
}
}
class zixingche extends person{
public zixingche(String name) {
super(name);
}
}

3、父类:课程:exam方法
子类:语文,数学,英语
package a;
public class Student {
public static void main(String[] args) {
feiji f=new feiji("语文");
f.exam();
f.fly();
ditie d=new ditie("数学");
d.exam();
d.zr();
feiji s=new feiji("英语");
s.exam();
s.zx();
}
}
class kecheng{
public String name;
public kecheng(String name){
this.name=name;
}
public void exam(){
System.out.println("执行了"+this.name+"的exam方法");
}
public void zr(){
System.out.println("执行了"+this.name+"的变得聪明的方法");
}
public void fly(){
System.out.println("执行了"+this.name+"的变得有涵养的方法");
}
public void zx(){
System.out.println("执行了"+this.name+"的变得自信的方法");
}
}
class gongjiaoche extends kecheng{
public gongjiaoche(String name) {
super(name);
}
}
class zixingche extends kecheng{
public zixingche(String name) {
super(name);
}
}
class feiji extends kecheng{
public feiji(String name) {
super(name);
}
}
class ditie extends kecheng{
public ditie(String name) {
super(name);
}
}

4、父类:形状:pait方法
子类:三角形,正方形,圆形,五角星
package a;
public class Student {
public static void main(String[] args) {
sjx f=new sjx("三角形");/*这里sjx(子类名)换为person(父类名),虽然可少写些extends部分,但就没太多意义了,只是单纯的方法调用了,因为这题是为了多练熟extends部分,所以不换为person,这里写了相应的extends部分,才可xie相应的 子类名 名=new 子类名(" ")*/
f.pait();
f.stb();
zfx d=new zfx("正方形");
d.pait();
d.sitb();
yx e=new yx("圆形");
e.pait();
e.ka();
wjx s=new wjx("五角星");
s.pait();
s.wgj();
}
}
class person{
public String name;
public person(String name){
this.name=name;
}
public void pait(){
System.out.println("执行了"+this.name+"的pait方法");
}
public void stb(){
System.out.println("3条边");
}
public void sitb(){
System.out.println("4条边");
}
public void wgj(){
System.out.println("5个角");
}
public void ka(){
System.out.println("圆圆的很可爱,让人有视觉享受");
}
}
class sjx extends person{
public sjx (String name) {
super(name);
}
}
class zfx extends person{
public zfx(String name) {
super(name);
}
}
class yx extends person{
public yx(String name) {
super(name);
}
}
class wjx extends person{
public wjx(String name) {
super(name);
}
}

5、父类:英雄:cast方法
子类:法师、战士、刺客、猎人、牧师
package a;
public class Student {
public static void main(String[] args) {
sjx f = new sjx("法师");
f.cast();
f.mf();
zfx d = new zfx("战士");
d.cast();
d.jz();
yx e = new yx("刺客");
e.cast();
e.as();
wjx s = new wjx("猎人");
s.cast();
s.sl();
MS j = new MS("牧师");
j.cast();
j.xrsxt();
}
}
class person {
public String name;
public person(String name) {
this.name = name;
}
public void cast() {
System.out.println("执行了" + this.name + "的cast方法");
}
public void jz() {
System.out.println("近战");
}
public void xrsxt() {
System.out.println("送人上西天");
}
public void mf() {
System.out.println("魔法");
}
public void as() {
System.out.println("暗杀");
}
public void sl() {
System.out.println("狩猎");
}
}
class sjx extends person {
public sjx(String name) {
super(name);
}
}
class zfx extends person {
public zfx(String name) {
super(name);
}
}
class yx extends person {
public yx(String name) {
super(name);
}
}
class wjx extends person {
public wjx(String name) {
super(name);
}
}
class MS extends person {
public MS(String name) {
super(name);
}
}//注意不要套在class wjx等类中去了
