1、在com.schools中创建学校类,里面有两个私有属性名字(name),成立时间(established)和四个protected方法:设置名字setName();设置成立时间setEstablished();以及获取名字getName();获取成立时间getEstablished()
在com.test中创建实例化对象,正常输出两个属性的值
写出protect、缺省修饰符和private不同访问级别的区别
package _4;
import _3.*;
public class _1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
_3._1 s=new _3._1();
s.setName();
s.setEstablished();
}
}
package _3;
public class _1 {
private String name;
private String established;
// 设置名字
public void setName() {
this.name="周开伟";
System.out.println(this.name);
}
// 设置成立时间
public void setEstablished() {
this.established="2021-06-11";
System.out.println(this.established);
}
// 获取名字
public void getName(String name) {
this.name=name;
}
// 获取成立时间
public void getEstablished(String established) {
this.established=established;
}
}
2.创建一个交通工具父类(Vehicles)以及两个子类,分别是小汽车类(Car)和卡车类(Truck),显示出各类的相关信息。程序运行结果如图:
package _3;
public class Car extends Vehicles {
int seats;
// 显示小汽车座位
public void showCar() {
System.out.println("我是一辆:"+this.brand+"\t我的颜色:"+this.color+"\t我有:"+this.seats+"个座位");
}
public void Car(int seats) {
this.seats=seats;
}
}
package _3;
public class Truck extends Vehicles {
float load;
public void showTruck() {
System.out.printf("我是一辆"+this.brand+"\t我的颜色"+this.color+"\t我的载重%.2f吨的材料\n",load);
}
public void Truck(float load) {
this.load=load;
}
}
package _3;
public class Vehicles {
String brand;
String color;
public void run() {
System.out.println("我"+brand+"正在行驶");
}
public void showlnfo() {
System.out.println("品牌:"+brand+"\t颜色:"+color);
}
public void Vehicles(String brand,String color) {
this.brand=brand;
this.color=color;
}
}
package _3;
public class VehiclesTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Car s=new Car();
s.Vehicles("阿斯顿马丁", "绿色");
s.showlnfo();
s.Car(6);
s.showCar();
s.run();
Truck p=new Truck();
p.Vehicles("东风小康", "蓝色");
p.showlnfo();
p.Truck(12);
p.showTruck();
p.run();
}
}
总结:
- java继承的语法:
[修饰符] class 子类名 [extends 父类名]{
//类定义部分
}
2.方法的重载是指一个类中多个方法可以具有相同的方法名,但这些方法的参数必须不同,在执行时可以根据其参数个数与类型来判断要调用此方法是哪一种操作。
3.如果子类包含与父类同名的方法,该现象被称为方法重写,也被称为方法覆盖。方法的覆盖是子类“隐藏”了父类中的方法,如果需要访问被子类覆盖的方法,则可使用super关键字调用父类被覆盖的实例方法。
4.多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在编译时,可以通过父类的引用指向子类对象,而在运行时,则通过父类所指向的子类对象,调用子类中重父类的方法。