方法重写
参考这个总结一下到这里:
056-基础语法-面向对象-方法重写-小练习_哔哩哔哩_bilibili
示例1:
1 public class DemoClass4Extends_1 { 2 public static void main(String[] args) { 3 cc c = new cc(); 4 System.out.println(c.sum()); // 结果:20 5 } 6 } 7 8 class cc{ 9 int i = 10; 10 int sum(){ 11 return i + 10; 12 } 13 } 14 15 class dd extends cc { 16 int i = 20; 17 int sum(){ 18 return i + 20; 19 } 20 }
示例2:
1 public class DemoClass4Extends_1 { 2 public static void main(String[] args) { 3 dd d = new dd(); 4 System.out.println(d.sum()); // 结果:40 5 } 6 } 7 8 class cc{ 9 int i = 10; 10 int sum(){ 11 return i + 10; 12 } 13 } 14 15 class dd extends cc { 16 int i = 20; 17 int sum(){ 18 return i + 20; 19 } 20 }
示例3:
1 public class DemoClass4Extends_1 { 2 public static void main(String[] args) { 3 //一个对象能使用什么方法,取决于引用变量的类型 4 //一个对象的方法具体的使用是需要看具体的对象的 5 cc d = new dd(); 6 System.out.println(d.sum()); // 结果:40 7 } 8 } 9 10 class cc{ 11 int i = 10; 12 int sum(){ 13 return i + 10; 14 } 15 } 16 17 class dd extends cc { 18 int i = 20; 19 int sum(){ 20 return i + 20; 21 } 22 }
示例4:
1 public class DemoClass4Extends_1 { 2 public static void main(String[] args) { 3 //一个对象能使用什么方法,取决于引用变量的类型 4 //一个对象的方法具体的使用是需要看具体的对象的 5 6 //一个对象的属性具体的使用是不需要看具体的对象的,属性在哪里声明就在哪里使用 7 cc d = new dd(); 8 System.out.println(d.sum()); // 结果:20 9 } 10 } 11 12 class cc{ 13 int i = 10; 14 int sum(){ 15 return i + 10; 16 } 17 } 18 19 class dd extends cc { 20 int i = 20; 21 // int sum(){ 22 // return i + 20; 23 // } 24 }
示例5:
public class DemoClass4Extends_1 { public static void main(String[] args) { //一个对象能使用什么方法,取决于引用变量的类型 //一个对象能使用什么属性,取决于引用变量的类型 //一个对象的方法具体的使用(直接、间接)是需要看具体的对象的 //一个对象的属性具体的使用是不需要看具体的对象的,属性在哪里声明就在哪里使用 cc d = new dd(); System.out.println(d.sum()); // 结果:30 } } class cc{ int i = 10; int sum(){ return getI() + 10; } int getI(){ return i; } } class dd extends cc { int i = 20; // int sum(){ // return i + 20; // } int getI(){ return i; } }

浙公网安备 33010602011771号