方法的重载(overload)(在一个类中进行)
* 方法的重写(Override) (前提:至少两个类 并且有继承关系)
* 方法的重写 作用:相当于 对父类的该方法 进行升级
* 重写:跟父类的方法完全一致
*
* 书写一个类 都写什么方法?
* 有参 无参构造方法 set/get方法 重写tostring方法输出属性
public static void main(String[] args) {
TestD testD = new TestD();
testD.print();
}
}
class TestC{
public void print() {
System.out.println("我是C类的 print方法");
}
}
class TestD extends TestC{
public void print() {
// 重写父类的方法是
// 调不调用父类的方法 要根据需求而定
// super.print();
// System.out.println("我是D类的 print方法");
IOS8 ios8 = new IOS8();
// 直接打印对象
// 希望把这个类 属性输出出来
System.out.println(ios8);
}
}
class IOS7{
public void siri() {
System.out.println("我是会 说英语");
}
}
class IOS8 extends IOS7{
// 注解:标识这个方法是重写父类
@Override
public void siri() {
super.siri();
System.out.println("我会 说 汉语");
}
// 这个方法 一般用来 数组本类中的属性
@Override
public String toString() {
// 调用的是父类的方法
// 并且打印出来全类命@26进制hashode码
return "wjxyw";
}
}
关键字 final
* 修饰类:不能被继承
* 可以修饰变量:不能被修改
* 修饰方法:修饰方法时不能被重写
* final 修饰引用数据类型
* 不进行重新指向(地址不能修改)
* 对象中的属性不会影响修改
public static void main(String[] args) {
// final int num = 10;
// num = 20;
final Test2 test2 = new Test2();
test2.name = "小白";
test2.name = "小黑";
test2.sayHi();
// test2 = new Test2();
}
}
class Test1 {
//堆内存分配默认值是无效的默认
//final 修饰成员变量的时候 需要赋 初始值
//赋值 初始值 三种方式
//一般使用final的时候 会直接 定义成 静态变量
//使用类名直接打印 方便
//常量的命名规范 所有字母大写 多单词用下划线分开
public static final String HOST = "localhost:8080/day07";
private final void fun() {
}
public Test1() {
//可以在构造方法中 进行赋值
// num = 10;
}
{
// 可以在构造代码块中 进行赋值
// num = 10;
}
}
class Test2 extends Test1{
String name;
public void sayHi(){
System.out.println(name);
}
}