public Vehicle getVehicle(){22 System.out.println("给你一个交通工具!");23 return null;
24 }
这个有点没明白,格式是修饰符+类名+方法名+形参列表+……。
这是什么方法命名啊?有这种格式吗
方法名就是方法的名称,随意定义。而且方法格式是修饰符,返回值类型,方法名,形参列表,这里返回值用的是Vehicle类型,


当我准备在main方法中new新对象的时候,出现了上述报错,查了一下解决办法,尝试将class Vehicle{}, class House{},class Plane{}这三个类放到 public class TestOverride{}这个类外面的时候,报错就消失了。请问这是什么原理?为什么将这三个内部类放到 TestOverride类外面就没问题了?
语法错误,类发生嵌套会报错哦.学到后面会专门讲解内部类的语法哦
老师,为什么我main方法加了static,我就没办法new 一个Horse的对象出来呢?
一个源文件中可以有多个类。但是至多只有一个用public修饰的类

这里所说的重写时子类对应方法的返回值类型要小于父类,Horse是Vehicle的子类,从大小关系上是Vehicle大Horse小吗?那为什么会说子类包含父类的说法(子类可以派生新的属性和方法)? 不是很理解大小是从什么角度定义的。
1.子类重写父类方法时,关于返回值类型,父类是不是可以返回子类的类型?
2.返回值是类类型的,是不是必须返回该类的值,不能返回父类的值?
class person {
public student getPerson() {
return new student();
// return null;
}
}
class student extends person {
@Override
public student getPerson() {
// return new student();
return null;
}
}
1.子类重写父类方法时,关于返回值类型,父类是不是可以返回子类的类型?
可以的
2.返回值是类类型的,是不是必须返回该类的值,不能返回父类的值?
那就看这个方法你定义的是要返回什么类型的,是父类的就是父类的,是子类的就是子类的,不能是要返回一个子类的,你写的是父类的。

这个类下面的getVehicle方法是构造方法还是普通的方法?如果是普通方法为啥能用类名来定义?
这个是普通方法,这里的类名是他的返回值类型,跟void的差不多的
行参列表是指什么

就是声明一个方法,小括号里面的类型 变量名,这个就是形参列表
老师这我是什么情况呀
微信找我我给你看一下吧
第5行报错是咋回事?

1、为什么Horse比Vehicle小?难道编译器能分辨“交通工具” > “马”,能从语境分析?

Horse继承了Vehicle,这里是通过extends识别的,在继承中,被继承的类称为父类,继承该类的类称为子类,二者你可以理解为继承关系,所以Horse比Vehicle小。
哦~通过extends确认Horse为Vehicle的子类,子类可以定义Horse,也可以定义为Car,只要和父类名字不一样如:Vehicle
就可以看成比父类小。
这样子理解可以吗?
可以这样理解哦
为什么要写成public Vehicle getVehicle() 而不能写成public void getVehicle ()
为什么要写成public Vehicle getVehicle() 而不能写成public void getVehicle ()
因为老师使用这个方法是需要返回一个Vehicle 的对象的,如果不需要返回任何东西就可以写void,自己定义的类也是可以被返回的,这个在后面咱们会大量的使用的,可以慢慢的去接受。
public Horse getVehicle() {return new Horse();
老师,视频中的子类方法,返回了一个对象,运行时候会出现什么
你调用这个方法,就会去给你new一个Horse这个对象。
package com.java.oop;
//测试方法重写
public class TestOverride {
public static void main(String args[]){
Vehicle v = new Vehicle();
Horse h = new Horse();
}
static class Vehicle{//父类
public void run(){
System.out.println("跑");
}
public Vehicle getVehicle(){
System.out.println("给你交通工具");
return null;
}
}
static class Horse extends Vehicle{//子类继承父类拥有父类方法
public void run(){
System.out.println("嘚嘚得");
}
public Horse getVehicle(){
return new Horse();
}
}
}在创建对象时,报错提示类加static静态修饰符

非静态内部类,可以这样创建对象
com.java.oopTestOverride {
(String args[]){
Vehicle v = Vehicle()}
Vehicle{(){
System..println()}
Vehicle (){
System..println()}
}
Horse Vehicle{(){
System..println()}
Horse (){
Horse()}
}
}在创建对象时,为啥会提示加静态修饰符static

同学,这份问答结构乱了哦,我看你下一份提交的作业了哦
class Vehicle{ //交通工具类
public void run(){
System.out.println("跑....");
}
public Vehicle getVehicle(){
System.out.println("给你一个交通工具!"
);
return null;
}
}老师 第一个class 是类的意思
但下面的这句是方法的意思不(指返回)
public void run(){还有这个 也是指方法(返回的意思吗)
public Vehicle getVehicle(){这里的return null 是指返回什么呢
return null;
public void run() 这个是指方法的声明 public是访问权限 void是返回值 run是方法名 ()是方法的参数列表public Vehicle getVehicle() public是访问权限 Vehicle是返回值 getVehicle是方法名 ()是方法的参数列表
return null; return是方法体里面具体的返回值,这里返回一个null出去。
return null; return是方法体里面具体的返回值,这里返回一个null出去。
老师为啥这里要返回一个null出去啊
因为如果你声明了返回的类型,就必须返回出去这个类型或其子类类型的值,如果不返回就会报错,这个时候也可以返回一个null出去,代表没有什么都没有返回,null可以代表任意类型。这样语法就能通过了。