Java1112 基类 c#vscode使用 程序结构
C#














生成






重新生成
c#程序结构
//1个解决方案 可以有多个程序集
//命名空间 //可以包含多个namespace
namespace ConsoleApp1
{internal class Program//类定义 程序内部类 program 可以有多个类{//string[] args当前方法需要传入的参数//c程序的执行入口必须是static void mainstatic void Main(string[] args)//仅有一个 //方法体{//逻辑代码Console.WriteLine(">>Hello, World!");//结束符 //>> 输出并换行Console.Write("ss");}//逻辑性错误通过调试执行}
}

JAVA
基类
父类、超类 被其他类继承的类 所有的类都继承自Object
public class ObjectMethods extends Object {public static void main(String[] args){Object ob1=new Object();Object ob2=new Object();System.out.println("toString:"+ob1.toString());System.out.println("equals:"+ob1.equals(ob2));}
}

public class Animal {protected String name;protected int age;public Animal(String name,int age){this.name=name;this.age=age;}public void eat(){System.out.println(name+"eating....");}public void makeSound(){System.out.println("making noise");}public String getName(){return name;}public void setName(String name){this.name=name;}public int getAge(){return age;}public void setAge(int age){this.age=age;}@Overridepublic String toString() {return "Animal{name='" +name+"', age=" +age +"}";}
}
public class Dog extends Animal{private final String breed;public Dog(String name, int age, String breed) {super(name, age);//怎么理解superthis.breed=breed;}public void makeSound(){System.out.println(name+"bak");}
public void guard(){System.out.println(name+"baking...");}
}
public class Cat extends Animal{private int lives=9;public Cat(String name, int age) {super(name, age);}@Overridepublic void makeSound() {// super.makeSound();System.out.println(name+"miaomiaomiao");}public void climbTree(){System.out.println(name+"climbing");}public int getLives(){return lives;}
}

抽象类有点忘了
传参问题
import java.lang.reflect.InvocationTargetException;public class Test {public static void main(String[] args) {ObjectToStringConverter converter = new ObjectToStringConverter();//对象Student student = new Student("ZHANG", 20);School school = new School("89");Game game = new Game("lOL");System.out.println("Test objectToString方法");try {String studentStr = converter.objectToString(student);//传参,这个比较高级 student为啥可以这样传String schoolStr = converter.objectToString(school);String gameStr = converter.objectToString(game);String nullStr = converter.objectToString(null);System.out.println();} catch (NoSuchFieldException e) {throw new RuntimeException(e);} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (InvocationTargetException e) {throw new RuntimeException(e);} catch (NoSuchMethodException e) {throw new RuntimeException(e);} catch (InstantiationException e) {throw new RuntimeException(e);} catch (IllegalAccessException e) {throw new RuntimeException(e);}try {String studentName = converter.getObjectNameField(student);String schoolName = converter.getObjectNameField(school);String gameName = converter.getObjectNameField(game);String nullName = converter.getObjectNameField(null);System.out.println("STUDEN‘s name=" + studentName);System.out.println("SCHOOL'S name=" + schoolName);System.out.println("GAME'S name=" + gameName);System.out.println("NULL'S name=" + nullName);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}try {Object obj = new Object();String result = converter.getObjectNameField(obj);System.out.println("Object的name:" + result);} catch (Exception e) {System.out.println("错误:" + e.getMessage());}}
}
// Student 是 Object 的子类
Student student = new Student("ZHANG", 20);// 向上转型:子类对象可以自动转换为父类引用
Object obj = student; // ✅ 完全合法,自动转换// 所以可以直接传递给期望Object参数的方法
String studentStr = converter.objectToString(student);
为什么student类是object类的子类对对对变成 调用objectToString方法 //Object类是所有类的父类
//定义了ObjectToStringConver类的一个对象 所以可以使用objectToString方法,入参是Object
