
package com.use.myextends;
import com.use.myextends.exercise.Student;
public class MyExtendes {
public static void main(String[] args) {
// Student student = new Student();
// 不同包下的类,默认和protected级别不能直接访问
// System.out.println(student.name + student.age + student.score);
// Sub sub = new Sub();
// 在创建子类对象时 默认会调用父类中的无参构造器
// sub.subInfo();
System.out.println("======第2个对象======");
Sub sub01 = new Sub(1);
// sub继承父类的父类
sub01.topbaseFunc();
}
}
class MyStudent extends Student{
//不同包下的子类 默认级别不能直接访问 protected可访问
public void showInfo(){
// System.out.println(name+age+score);
}
}
package com.use.myextends;
public class Sub extends base{
public Sub(int n1){
// 若父类中不存在无参构造器,需要用 super(参数) 来显式调用父类中指定的构造器
super(n1);
System.out.println("子类中的Sub(int n1)构造器");
}
// public Sub(){
super();
// // 创建对象时,会默认使用此函数 调用父类中的无参构造器,此函数无需显式调用,系统编译时默认调用
// System.out.println("子类中的Sub()构造器");
// }
public void subInfo(){
test100();
test200();
test300();
testPrivate();
// test400(); // 私有属性/方法不能在子类中直接调用
}
}
package com.use.myextends;
public class base extends Topbase{
public int n1=100;
protected int n2 = 200;
int n3 = 300;
private int n4 = 400;
public base(int n1){ //父类中的无参构造器
System.out.println("父类中的base(int n1)构造器");
}
// public base(){ //父类中的无参构造器
// System.out.println("父类中的base()构造器");
// }
// 父类中的私有属性&方法 需要通过父类提供的方法访问
public void testPrivate(){
System.out.println(n4);
test400();
}
public void test100(){
System.out.println("test100().....");
}
protected void test200(){
System.out.println("test200().....");
}
void test300(){
System.out.println("test300().....");
}
private void test400(){
System.out.println("test400().....");
}
}
package com.use.myextends;
public class Topbase {
public void topbaseFunc(){
System.out.println("topbaseFunc() 被调用");
}
}
package com.use.myextends;
public class ExtendsExercise {
public static void main(String[] args) {
B b = new B();
}
}
class A{
A(){System.out.println("a");}
A(String name){System.out.println("a name");}
}
class B extends A{
B(){this("abc");System.out.println("b");};
// this("abc") 会调用下方构造器,构造器中默认有 super() 函数,会调到父类A中的无参构造器
B(String name){System.out.println("b name");}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)